plt.pcolormesh异常表现:仅显示一条线的问题求助
plt.pcolormesh异常表现:仅显示一条线的问题求助
嘿,我来帮你分析一下这个问题!首先你的代码逻辑其实是对的,但可能是显示环节出了小状况,导致你只看到了上方的那条线。咱们一步步来拆解:
先确认你的代码本身没问题
你已经正确遵循了pcolormesh的要求:X轴t是301个点(对应300个单元格),Y轴f是501个点(对应500个单元格),数据valeurs的形状是(500, 300),完全匹配(len(Y)-1, len(X)-1)的要求。而且你给valeurs[100,:]和valeurs[400,:]都赋值为10,这两行数据确实存在。
为什么只看到一条线?
大概率是坐标轴自动缩放的小问题,或者你的绘图窗口把下方的线给挡住了。因为f的范围是-1000到1000,valeurs[100,:]对应的Y区间是-600到-596,这个位置比较靠近窗口底部,如果窗口尺寸不够或者自动缩放没覆盖到,就会看不到这条线。
解决方法
试试这几个步骤,就能看到两条线了:
强制设置Y轴范围:在
plt.show()前加上一行代码,确保整个Y区间都显示出来:plt.ylim(-1000, 1000)添加颜色条验证数据:加上颜色条可以直观看到数值范围,确认两行数据都被正确绘制:
plt.colorbar()检查数据是否正确赋值:可以打印两行数据的总和,确认它们确实是10:
print("第100行总和:", valeurs[100,:].sum()) # 应该输出3000(300个10) print("第400行总和:", valeurs[400,:].sum()) # 同样输出3000换个绘图函数验证:比如用
contourf试试,看看是否能显示两条线,排除pcolormesh的显示问题:plt.contourf(t, f, valeurs, levels=[5, 15])
补充说明
pcolormesh绘制的是一个个小矩形单元格,你设置的一行值其实是一条很细的水平矩形条(Y方向只有4个单位的宽度),所以看起来像一条线。只要确保坐标轴范围覆盖到它,就能正常显示啦。
备注:内容来源于stack exchange,提问作者Basilic
相关产品推荐
相关产品推荐

