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

Pandas双轴绘图中第二个子图仅支持scatter类型的原因排查

问题原因分析:双轴绘图仅scatter类型显示,其他类型不显示
  • 核心原因:两个数据集的时间范围完全不重叠
    查看你的数据可以发现:

    • current_speed.csv的时间区间是2022-10-27 13:36到2022-10-27 15:36
    • wind_speed.csv的时间区间是2022-10-27 00:00到2022-10-27 02:00
      两者时间完全错开,没有任何交集。
  • 双轴共享x轴范围的特性
    用twinx()创建的ax2和ax1共享同一个x轴,x轴的显示范围默认由第一个绘制的图表决定:你先绘制了ax1的line图,x轴范围被自动限定在13:36-15:36之间。

  • 不同绘图类型的x轴范围处理差异

    • 绘制scatter类型时:Matplotlib会自动检测所有散点的x值,主动扩展x轴范围以包含这些点,所以wind_speed的点能正常显示在图表上。
    • 绘制line/area/bar等类型时:Pandas的plot方法会沿用当前已有的x轴范围,不会自动扩展。而wind_speed的时间完全在13:36-15:36之外,导致线条绘制在可视区域的左侧,自然无法看到。

验证与修复方法

在代码最后添加手动设置x轴范围的代码,确保覆盖两个数据集的时间区间:

plt.xlim(pd.Timestamp('2022-10-27 00:00'), pd.Timestamp('2022-10-27 16:00'))
plt.show()

此时将ax2的kind="scatter"改为kind="line",就能看到wind_speed的线条正常显示了。

你也可以调整数据集的时间让两者有重叠区间,这样无需手动设置x轴范围也能正常显示所有类型的图表。

内容的提问来源于stack exchange,提问作者fred

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:25:29