示例資料如下:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d as Axes3D
from matplotlib import cm
import numpy as np
x = np.linspace(1,4,10)
y = np.linspace(3,4,10)
z = np.linspace(10,20,7)
data = np.random.rand(10,7)
和自定義情節是這樣的:
xx = np.ones((10,7))
yy = np.ones((10,7))
zz = np.ones((10,7))
for i in range(7):
xx[:,i] = x
yy[:,i] = y
for i in range(10):
zz[i,:] = z
像這樣的線框:

當我嘗試使用此方法獲取表面顏色時:
ax = plt.figure().add_subplot(111,projection = '3d')
ax.plot_surface(xx,yy,zz,facecolor = cm.coolwarm(data))
plt.show()
像這樣的錯誤:
ValueError:RGBA 序列的長度應為 3 或 4
我無法弄清楚為什么這是失敗的。我需要這個自定義圖來替換 Meshgrid(確實需要這個圖作為我的輸出)。任何人都可以解決這個問題嗎?泰
uj5u.com熱心網友回復:
colors= cm.coolwarm(data)
ax.plot_surface(xx,yy,zz,cmap = cm.coolwarm, facecolors =colors)
您可以在
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/398881.html
標籤:Python matplotlib
上一篇:在matplotlib(python)中按字典中的顏色對散點圖進行分組
下一篇:顏色條刻度值和標簽不匹配
