我已经计算了很多(~5000)3d点(x,y,z)在一个相当复杂的方式,所以我没有这样的函数z = f(x,y)。我可以使用
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
X = surface_points[:,0]
Y = surface_points[:,1]
Z = surface_points[:,2]
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
surf = ax.plot_trisurf(X, Y, Z, cmap=cm.coolwarm, vmin=np.nanmin(Z), vmax=np.nanmax(Z))
我也想在2d中绘制这个图,用颜色条指示z值。我知道有一个简单的解决方案使用斧头。如果我的z是一个矩阵,但这里我只有一个向量。
旋转到xy平面时附加plot_trisurf结果。这就是我想实现的,而不必旋转3D图。在这里,我的变量surface_points是一个np。数组大小为5024 x 3。
2条答案
按热度按时间ppcbkaq51#
我在一个代码中遇到了同样的问题,我用这种方法解决了:
31moq8wy2#
可以使用散点图显示z颜色在x-y轴上的投影。
因为你似乎有一个中空的3D形状,你可以把投影分成两部分,就像你把形状分成两部分一样。