如何修改循环绘图代码 将多个DataFrame的曲线绘制在同一张图表中
你当前代码每次调用schedule.plot()时pandas都会默认创建新的绘图轴对象,因此会输出多张独立图表,只需要提前创建统一的绘图轴,所有绘图操作都指定复用这个轴即可实现多曲线同图展示。
优化后代码如下:
import matplotlib.pyplot as plt def plotter(*schedules, desire='Interest'): """ *schedules : 还款计划表DataFrame desire : 作为y轴对比的字段名 """ # 提前创建统一画布与绘图轴,可自行调整figsize参数修改画布尺寸 fig, ax = plt.subplots(figsize=(10, 6)) for idx, schedule in enumerate(schedules): schedule.plot( x='Period', y=desire, label=f"还款方案{idx+1}:{desire}", # 区分不同方案的曲线标签 ax=ax # 核心参数:指定所有曲线绘制到同一个轴对象上 ) # 以下为可选的图表美化配置 ax.set_title(f"不同还款方案{desire}随期数变化对比") ax.set_ylabel(desire) ax.grid(alpha=0.3) plt.legend() plt.show()
调用方式和原有逻辑一致,直接传入所有还款计划表DataFrame即可,示例:
plotter(schedule1, schedule2, schedule3, desire='Interest')
内容的提问来源于stack exchange,提问作者Vilgot Kraft
相关产品推荐
相关产品推荐

