You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:23:02