kil*_*les 3 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
Run Code Online (Sandbox Code Playgroud)
我不知道如何将这些数据提供给pcolormesh. 我想我必须使用,np.meshgrid但我不知道在这种情况下如何使用。
dat = pd.read_csv('my_dat.csv')
plt.pcolormesh(dat['X'], dat['Y'], dat['Z'])
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果是Value error: need more than one value to unpack
我不明白 - 为什么这不起作用?
您的数据只需要重新调整。此处无需使用np.meshgrid,因为每个单元格已有 x 和 y 坐标。
如果你有nxx 坐标和nyy 坐标,那么你可以这样做:
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()
Run Code Online (Sandbox Code Playgroud)
请注意,pcolormesh 更希望您的x和y尺寸比尺寸大一z,因为x和y定义单元格的边缘,并z定义单元格中心的颜色。来自文档:
理想情况下,X 和 Y 的尺寸应比 C 的尺寸大 1;如果尺寸相同,则 C 的最后一行和最后一列将被忽略。
因此,在您的示例中,最终行和列的颜色将会丢失,除非您添加 x 和 y 坐标比单元格数量大 1 的虚拟单元格的行和列。另一种方法可能是使用plt.contourf,其中 x、y 和 z 的长度应相同。
| 归档时间: |
|
| 查看次数: |
4103 次 |
| 最近记录: |