我试图在一个窗口中绘制两个3d图,看起来像这样:
这是使用面色的表面图。它必须是z = 0处的免费,并且上面必须是散点图。您可能会在灰色图的边界附近看到一些红点。 似乎有些问题,并且散点图已放置在表面图下。但是如果我们转动相机...
Wuala !!!如果不是魔术,这是什么? 如果您知道,也请告诉我,因为我非常不明白发生了什么,而且我的座位现在已经够热了,足以融化Wolfram。
预先感谢!=)
还有一幅图片:
和代码:
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()