Добавить фоновое изображение на 3D-график
Эта тема была затронутаВот, но не было дано никаких указаний относительно того, как создать трехмерный график и вставить изображение в(x,y)
самолет, в указанномz
рост.
Итак, чтобы придумать простой и воспроизводимый случай, скажем, я создаю трехмерный сюжет, как это сmplot3d
:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.winter,
linewidth=0, antialiased=True)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
plt.show()
На уровнеz=min(z)-1
, где-1
визуальное смещение, чтобы избежать наложения,Я хочу вставить изображение представляющие элементы, для которых кривая показывает определенное значение.Как это сделать?
В этом примере меня не интересует идеальное соответствие между элементом и его значением, поэтому вы можете загрузить любое понравившееся изображение. Кроме того, есть ли способ позволить этому изображению вращаться, если кто-то не доволен соответствием?
РЕДАКТИРОВАТЬ
Это наглядный пример чего-то подобного, сделанного для трехмерной гистограммы. Серые фигуры на уровнеz=0
элементы, для которых столбцы показывают определенныйz
значение.Источник.