首页 > 解决方案 > 在 3d 投影上使用 plt.clim 设置间隔颜色表面

问题描述

我有一些数据,例如:

x = np.linspace(0, 10, 10)
y = np.linspace(20, 50, 30)
z = np.linspace(-10, 5, 15)
data = np.random.rand(10,30,15)

其中数据中的所有元素都有 .2f 小数,并且数据的最大值和最小值之间的差异很小,所以我需要设置一个 inverval 来获取数据值的对比度。我会将数据可视化为表面颜色。我试过了,但不幸的是它没有用:

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

for i in range(len(x)):
    surfcol = plt.cm.jet(data[i])
    ax.plot_surface(x[i][:,0:len(data[i])],
                    y[i][:,0:len(data[i])],
                    z[i][:,0:len(data[i])],
                    facecolors=surfcol)
plt.clim(-0.01,0.01)
plt.show()

当我尝试pcolormesh在 2d 投影上使用时,它确实有效。代码如下所示:

plt.pcolormesh(data)
plt.clim(-0.01,0.01)
plt.show()

plt.clim用来查看数据值的对比。我想在哪里可视化 3d 投影时遇到问题plt.clim(),知道如何解决吗?

标签: pythonmatplotlib

解决方案


推荐阅读