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

如何在pandas中通过循环在同一figure上绘制多列数据的图像

你当前代码出现多张图的原因是,每次调用df.plot()方法时,pandas默认会创建独立的新画布和坐标系,所以每轮循环都会生成单独的图。要实现所有曲线绘制在同一张图中,可参考以下两种方案:

方案1:复用同一坐标系(保留循环逻辑)

提前创建全局的坐标系对象,每次循环绘图时指定共用该坐标系即可:

import matplotlib.pyplot as plt

# 提前创建画布和坐标系对象
fig, ax = plt.subplots()
# 你需要的取值范围是i=2、3、4,range左闭右开所以range2设为5
range1 = 2
range2 = 5
for i in range(range1,range2):
    # 传入ax参数,复用同一个坐标系
    df.plot(x ='Time', y=f'Amount i={i}', ax=ax)
# 显示图像
plt.show()

方案2:无需循环,一次性指定多列

如果不需要对单根曲线做单独配置,可直接传入所有需要绘制的Y列列表,一行代码即可实现效果:

import matplotlib.pyplot as plt

# 生成所有需要绘制的列名列表
plot_cols = [f'Amount i={i}' for i in range(2,5)]
# 直接指定多列绘制
df.plot(x='Time', y=plot_cols)
plt.show()

两种方案最终都会在同一张图中绘制三条曲线,且会自动生成图例区分不同列的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:57:03