Используя matplotlib, я пытаюсь отобразить гистограммы 2 наборов данных одновременно на боковых стенках трехмерного графика, используя этот код Matlab и график из Википедии в качестве моего руководства: https://commons.wikimedia.org/wiki/File:MultivariateNormal.png
Я могу нанести свои необработанные данные на базовую плоскость, и я создал и нанес на карту свои гауссовы посадки на боковых стенках, используя kwarg 'zdir'.
В этом примере можно использовать kwarg 'zdir', чтобы форсировать кривые,
Matplotlib 2D-сюжет на лицах 3D-сюжета
но документация matplotlib подтверждает мои AttributeErrors: Неизвестное свойство zdir; Hist и hist2d не поддерживают этот аргумент.
Этот пример, кажется, строит бары вручную на рисунке
построение трехмерной гистограммы / гистограммы в python matplotlib как способ решения проблемы.
Я пробовал оба .hist и .hist2d с и без zdir = ''.
# data is a 2D np.array defined elsewhere
# define plot limits
X = np.linspace(0, np.amax(data), 100)
Y = np.linspace(0, np.amax(data), 100)
# initialize data into x and y sets
x_data = data[:, 0]
y_data = data[:, 1]
# fit a gaussian to both sets
x_mean, x_std = norm.fit(x_data)
x_gauss = norm.pdf(X, x_mean, x_std)
y_mean, y_std = norm.fit(y_data)
y_gauss = norm.pdf(Y, y_mean, y_std)
# initialize plot
figure = plt.figure()
ax = figure.add_subplot(111, projection='3d')
# label axes
ax.set_xlabel('Delta X (um)')
ax.set_ylabel('Delta Y (um)')
ax.set_zlabel('P (X,Y)')
# plot data on base plane
ax.scatter3D(x_data, y_data, zdir='z', zs=0.0, c='k', marker='.')
# plot histograms on walls
ax.hist((x_data, x_gauss), bins=30) #these 2 lines
ax.hist((y_data, y_gauss), bins=30) #are where I'm looking for help
# plot gaussians on walls
ax.plot3D(X, x_gauss, zdir='y', zs=np.amax(data), c='b')
ax.plot3D(Y, y_gauss, zdir='x', zs=np.amax(data), c='g')
# show plot
plt.show()
Существует ли прямое совпадение в matplotlib для метода Matlab, который рисует гистограммы на определенной плоскости трехмерного графика? Спасибо за помощь! Я очень плохо знаком с заговором и приветствую любые другие идиоматические или обесцененные изменения, которые вы можете увидеть. Мне всегда нравится видеть, как думают другие кодеры.