Matplotlib-在一个网格中有两个3D图的问题

时间:2019-06-27 09:39:32

标签: python python-3.x matplotlib

我试图在一个窗口中绘制两个3d图,看起来像这样:

1

这是使用面色的表面图。它必须是z = 0处的免费,并且上面必须是散点图。您可能会在灰色图的边界附近看到一些红点。 似乎有些问题,并且散点图已放置在表面图下。但是如果我们转动相机...

mystery appears

Wuala !!!如果不是魔术,这是什么? 如果您知道,也请告诉我,因为我非常不明白发生了什么,而且我的座位现在已经够热了,足以融化Wolfram。

预先感谢!=)

还有一幅图片:

more)

和代码:

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")

intensity = np.zeros((nx, ny, 3), dtype=float)
ii1 = np.min(b_z[:, :, 0])
ii2 = np.max(b_z[:, :, 0])

intensity[:, :, 0] = 0.48 + (b_z[:, :, 0] / (ii2 - ii1) - ii1 / (ii2 - ii1)) * 0.52
intensity[:, :, 1] = 0.48 + (b_z[:, :, 0] / (ii2 - ii1) - ii1 / (ii2 - ii1)) * 0.52
intensity[:, :, 2] = 0.48 + (b_z[:, :, 0] / (ii2 - ii1) - ii1 / (ii2 - ii1)) * 0.52

intensity = tuple(intensity)

X1 = np.zeros((nx, ny), float)
Y1 = np.zeros((nx, ny), float)
Z1 = np.zeros((nx, ny), float)

for i in range(0, ny):
    X1[:, i] = x
for i in range(0, nx):
    Y1[i, :] = y
Z1 = Z1 + z[0]

ax.plot_surface(X1, Y1, Z1, rstride=1, cstride=1, facecolors=intensity)
ax.scatter(xx, yy, zz, s=20, c="red")


ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")
ax.set_zlabel("Z Label")
ax.set_xlim(left=np.min(x), right=np.max(x))
ax.set_ylim(bottom=np.min(y), top=np.max(y))
ax.set_zlim(bottom=np.min(z), top=np.max(z))

plt.show()

0 个答案:

没有答案