Python matplotlib三维热图

Python matplotlib三维热图,python,matplotlib,heatmap,Python,Matplotlib,Heatmap,如何使用pcolormesh绘制热图?我有三个大小相等的列表,X、Y和Z plt.pcolormesh(X, Y, Z) 我得到“ValueError:需要超过1个值才能解包” 当我这么做的时候 plt.pcolormesh(np.array(zip(X, Y)), Z) 我明白了: 您必须查看的文档,以查看pcolormesh输入参数的要求。x、 y和c不能是数字列表,它们必须是列表列表或二维numpy数组。您需要二维数组,因为pcolor和pcolormesh为c的每个值绘制一个四边形,

如何使用pcolormesh绘制热图?我有三个大小相等的列表,X、Y和Z

plt.pcolormesh(X, Y, Z)
我得到“ValueError:需要超过1个值才能解包” 当我这么做的时候

plt.pcolormesh(np.array(zip(X, Y)), Z)
我明白了:

您必须查看的文档,以查看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]), (X[i+1,j],Y[i+1,j]), (X[i+1,j+1],Y[i+1,j+1])

要将x和y列表更改为二维numpy数组,可以使用

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()