Python matplotlib以pcolormesh格式从csv打印X Y Z数据

Python matplotlib以pcolormesh格式从csv打印X Y Z数据,python,csv,matplotlib,Python,Csv,Matplotlib,我有以下形式的csv数据: X,Y,Z 0,0,0.0 0,1,0.0 1,0,1.0 1,1,0.55 2,0,4.0 2,1,3.216 我不知道如何将此数据提供给pcolormesh。我想我必须使用np.meshgrid,但我不确定在这种情况下如何使用 dat = pd.read_csv('my_dat.csv') plt.pcolormesh(dat['X'], dat['Y'], dat['Z']) plt.show() 导致值错误:需要多个值才能解包 我不明白-为什么这不管用 您

我有以下形式的csv数据:

X,Y,Z
0,0,0.0
0,1,0.0
1,0,1.0
1,1,0.55
2,0,4.0
2,1,3.216
我不知道如何将此数据提供给
pcolormesh
。我想我必须使用
np.meshgrid
,但我不确定在这种情况下如何使用

dat = pd.read_csv('my_dat.csv')
plt.pcolormesh(dat['X'], dat['Y'], dat['Z'])
plt.show()
导致
值错误:需要多个值才能解包


我不明白-为什么这不管用

您的数据只需要重新塑造。这里不需要使用
np.meshgrid
,因为每个单元格都有一个x坐标和y坐标

如果x中有
nx
坐标,y中有
ny
坐标,则可以执行以下操作:

X = dat['X'].reshape(nx,ny).T
Y = dat['Y'].reshape(nx,ny).T
Z = dat['Z'].reshape(nx,ny).T

plt.pcolormesh(X,Y,Z)
plt.show()
请注意,pcolormesh希望您的
x
y
尺寸比
z
尺寸大一倍,因为
x
y
定义了单元格的边缘,而
z
定义了单元格中心的颜色。从文档中:

理想情况下,X和Y的尺寸应比C的尺寸大一倍;如果尺寸相同,则C的最后一行和最后一列将被忽略


因此,在您的示例中,最后一行和最后一列的颜色将丢失,除非您添加一行和一列x和y坐标大于单元格数量的虚拟单元格。另一种方法是使用,其中x、y和z的长度应相同。

您希望如何绘制此数据?使用pcolormesh(x,y,c)时,x和y是单元格的坐标,c是单元格内值的二维数组。它似乎与您的数据不兼容。