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

如何优化Matplotlib子图绘制pandas Series的遍历代码?

优化Matplotlib子图与Series的遍历绘制

原代码通过嵌套循环和计数器匹配子图与Series,冗余且可读性弱。可以通过展平axes数组结合并行遍历实现更简洁的写法:

优化后的代码

import matplotlib.pyplot as plt

items = [expcat, inccat, expmonth, incmonth]
fig, axes = plt.subplots(2, 2)

# 将二维axes数组展平为一维,简化遍历逻辑
for idx, (ax, series) in enumerate(zip(axes.flatten(), items), start=1):
    ax.plot(series.cumsum(), color="red", linestyle="dashed", label=idx)
    ax.legend()  # 可选:显示标签

fig.subplots_adjust(wspace=0, hspace=0)
plt.show()

核心改进说明

  • 展平axes数组:axes.flatten()把2×2的二维axes结构转为一维列表,彻底避免嵌套循环。
  • 并行遍历配对:用zip(axes.flatten(), items)直接将子图对象与对应Series绑定遍历,无需手动维护计数器n。
  • 直接获取序号:enumerate(..., start=1)自动生成从1开始的序号,替代原代码中n的作用,用于设置标签。

如果需要确保Series数量与子图数量匹配,可以提前添加断言:assert len(items) == axes.size,避免索引越界问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 00:04:51