【发布时间】:2015-12-01 12:23:20
【问题描述】:
我正在使用以下线来绘制 3D 表面:
surf = ax3.plot_surface(X, Y, Z, rstride=1, cstride=1, alpha=0.5, linewidth=0, cmap=cm.jet,antialiased=True)
现在颜色变得非常漂亮,虽然有点鳞片状,但很好。
但我想改变表面颜色w.r.t。另一个数据,存储在list 中:
m = [104.48, 111.73,109.93,139.95,95.05,150.49,136.96,157.75]
我正在尝试:
norm = cls.Normalize() # Norm to map the 'm' values to [0,1]
norm.autoscale(m)
cmap = cm.ScalarMappable(norm, 'jet')
surf = ax3.plot_surface(X, Y, Z, rstride=5, cstride=5, alpha=0.5, linewidth=0, color=cmap.to_rgba(m), antialiased=True)
但这会引发错误,因为cmap.to_rgba 仅采用一维数组。
任何有关如何更改表面的colormap 的建议将不胜感激。
【问题讨论】:
标签: python matplotlib plot