如何在一张图表中绘制多个DataFrame数据
解决多DataFrame折线图同窗口显示问题
你需要先创建一个共用的绘图轴(Axes)对象,然后在循环中让每个DataFrame的折线图都绘制到这个轴上。修改后的代码如下:
import matplotlib.pyplot as plt def plot(my_dict): # 初始化共用绘图轴 ax = None for key in my_dict: df = my_dict[key] # 第一次循环创建轴,后续循环复用已有轴 ax = df.plot.line(x='c', y='i', ax=ax, label=key) plt.legend() # 显示图例区分不同DataFrame的折线 plt.show()
关键说明:
ax=ax参数:第一次调用df.plot.line()时,ax为None,pandas会自动创建新的Axes对象并返回;后续循环传入这个已有的Axes,所有折线就会绘制在同一张图上。- 添加
label=key和plt.legend():通过图例区分不同字典键对应的折线,方便识别每条线的来源。
Linux终端运行注意事项:
如果终端中绘图显示异常,确保matplotlib使用了适配的后端(比如TkAgg支持窗口显示,Agg用于生成图片文件)。可在代码开头添加:
import matplotlib matplotlib.use('TkAgg') # 根据你的终端环境选择合适后端
内容的提问来源于stack exchange,提问作者mahmood
相关产品推荐
相关产品推荐

