pandas 在同一图形上绘制两个格式相同的 Dataframe ,但每列只能绘制一个图形

ymzxtsji  于 2022-12-09  发布在  其他
关注(0)|答案(3)|浏览(160)

我有两个 Dataframe df_iter_actualsdf_iter_preds,如下所示:
第一个
一个是某个时间序列数据集的实际值,另一个是预测值。我想在一个图上绘制两个 Dataframe 之间的共享列,但为每个列创建一个新图。例如,我想在同一个图上显示FGCI 0.0 2017的数据,作为两个DFS的折线图。然后对于显示FGCI 1.0 2020.数据的下一个图,我能够仅使用一个 Dataframe 完成此操作,其中

for i in df_iter_actuals.columns:
    plt.figure(figsize = (10,8))
    plt.plot(df_iter[i])
    plt.title(f'Pct Error of CPR Predictions for {i}')

但是我不知道如何用两个 Dataframe 来做。

wrrgggsh

wrrgggsh1#

由于两个df的格式/列名相同,因此您可以将它们命名为:

for i in df_iter_actuals.columns:
    plt.figure(figsize = (10,8))
    plt.plot(df_iter_actuals[i])
    plt.plot(df_iter_preds[i])
    plt.title(f'Pct Error of CPR Predictions for {i}')
b4wnujal

b4wnujal2#

# Create figure and axes
fig, ax = plt.subplots(figsize=(10, 8))

# Iterate over columns in dataframes
for col in df_iter_actuals.columns:
    # Use the `df.plot()` function to plot the column from each dataframe
    df_iter_actuals[col].plot(ax=ax, label="Actual")
    df_iter_preds[col].plot(ax=ax, label="Predicted")

    # Set the title of the plot to the column name to whatever you need
    ax.set_title(f"Pct Error of CPR Predictions for {col}")
    
    # Show the plot and legend
    ax.legend()
    plt.show()

只需迭代两个 Dataframe 的列,然后使用df.plot()函数将两个 Dataframe 的每列绘制在同一个图形上!

wb1gzix0

wb1gzix03#

您可以使用concatgroupby.plot

(pd.concat([df_iter_actuals, df_iter_preds], keys=['actual', 'pred'], axis=1)
   .groupby(level=1, axis=1).plot()
)

相关问题