三維曲面圖我用下面這行繪製的三維曲面:色蟒蛇
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
的任何建議將受到高度讚賞。
如果我正確地得到它,那麼你正在繪製'X,Y,Z'並給出一個按照'Z-array'定製的顏色。但是我已經有了('X,Y,Z')的白色表面,現在我想要做的就是按照「m-array」的值對錶面着色。如果我誤解了,請糾正我。 – diffracteD
爲了得到一個2D數組,你必須在縮放的m數組上使用'meshgrid'。 – Moritz
是的,我在'x,y,z'擬合的情況下使用'np.meshgrid',但它給了我一個矩陣數據(等級3)傳遞給'plot_surface(X,Y,Z ,...)'來生成曲面。現在我怎麼能夠在繪圖中處理矩陣等級4(如果我包含'm')?關於你的想法的一點點代碼會很好。 – diffracteD