我有一些三维数据集,其中每个数据点的形式是(x,y,z)
。我想制作一个 3D 图,以 3D 曲面的形式z
表示为 和 的函数x
。y
为此,我使用以下代码:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1,projection='3d')
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap='viridis',edgecolor='none')
plt.show()
现在,我有一个基线点(x0,y0,z0)
,并且我希望将曲面的颜色图定义为 的函数z0
。更具体地说,我想要一个不同的颜色图z<z0
和z>z0
,例如一个增强的红色颜色图z<z0
和一个绿色的颜色图z>z0
。
我怎样才能做到这一点matplotlib
?
我根据这个答案找到了我的案例的解决方案:Defining the midpoint of a colormap in matplotlib。我们定义了一个以颜色图为中心的范数,然后我们选择从绿色到红色的z0
配色方案RdYlGn
,其中:X, Y, Z
numpy.ndarrays
minz = min(Z.flatten())
maxz = max(Z.flatten())
cnorm = plt.colors.TwoSlopeNorm(vmin=minz, vcenter=z0, vmax=maxz)
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap='RdYlGn',norm=cnorm,edgecolor='none')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句