如何为两个同结构DataFrame的每列绘制含实际值与预测值的子图?
实现双DataFrame列对应折线对比图
你可以通过循环遍历共享列,在同一个画布中分别绘制实际值和预测值的折线,具体代码如下:
import matplotlib.pyplot as plt # 遍历每个共同列(两DataFrame结构一致,列名完全匹配) for col_name in df_iter_actuals.columns: # 创建指定尺寸的画布 plt.figure(figsize=(10, 8)) # 绘制实际值折线,添加标记点和标签 plt.plot(df_iter_actuals.index, df_iter_actuals[col_name], label='实际值', marker='o', linestyle='-') # 绘制预测值折线,用不同标记区分 plt.plot(df_iter_preds.index, df_iter_preds[col_name], label='预测值', marker='s', linestyle='--') # 设置图表标题与坐标轴标签 plt.title(f'{col_name} 实际值与预测值对比') plt.xlabel('月份') plt.ylabel('数值') # 添加图例,区分两组数据 plt.legend() # 自动调整布局,防止标签被遮挡 plt.tight_layout() # 展示当前图表 plt.show()
关键说明:
- 因为两个DataFrame结构完全一致,直接遍历其中一个的列名即可覆盖所有共享列
- 使用不同的标记点(
marker='o'/marker='s')和线型(实线/虚线),能更直观区分实际值和预测值 - 如果需要保存图表,可在
plt.show()前添加plt.savefig(f'{col_name}_对比图.png', dpi=300),按列名自动命名保存
内容的提问来源于stack exchange,提问作者hulio_entredas
相关产品推荐
相关产品推荐

