Построение гистограмм на задних плоскостях 3D графиков в matplotlib - PullRequest
0 голосов
/ 30 апреля 2019

Используя 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, который рисует гистограммы на определенной плоскости трехмерного графика? Спасибо за помощь! Я очень плохо знаком с заговором и приветствую любые другие идиоматические или обесцененные изменения, которые вы можете увидеть. Мне всегда нравится видеть, как думают другие кодеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...