0
如何使用pcolormesh繪製熱圖?我有相同的大小,X,Y和Z的三個列表當我做matplotlib 3D熱圖
plt.pcolormesh(X, Y, Z)
我得到「ValueError異常:需要1個多值解壓」 當我做
plt.pcolormesh(np.array(zip(X, Y)), Z)
我得到這個:
如何使用pcolormesh繪製熱圖?我有相同的大小,X,Y和Z的三個列表當我做matplotlib 3D熱圖
plt.pcolormesh(X, Y, Z)
我得到「ValueError異常:需要1個多值解壓」 當我做
plt.pcolormesh(np.array(zip(X, Y)), Z)
我得到這個:
你必須查看pcolor的文檔來查看pcolormesh輸入參數的要求。 x,y和c不能是數字列表,它們是列表或二維numpy數組的列表。您需要二維數組,因爲pcolor和pcolormesh爲c的每個值繪製四邊形,並使用x和y定義角。對應於c中特定值的x和y值由它們在數組中的位置決定。
從文檔:
「X和Y,如果給定的,指定第(x,y)座標的着色四邊形的;對於C [I,J]四邊形在具有角部:
(X [i,j],Y [i,j]), (X [i,j + 1],Y [i,j + 1]), i + 1,j]), (X [i + 1,j + 1],Y [i + 1,j + 1])。
要將您的x和y列表更改爲二維numpy陣列,您可以使用meshgrid。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,11)
y = np.arange(0,11)
xv, yv = np.meshgrid(x,y)
c = np.random.rand(10,10)
plt.pcolormesh(xv,yv,c)
plt.show()