如何将两个或多个 pandas 具有不同长度时间序列的数据帧组合起来用于 matplotlib 图?

how to combine two or more pandas dataframes with different length time-series for matplotlib plots?

我正在尝试合并来自三个不同数据帧的三个时间序列图,并将它们绘制在同一个图上。

我尝试了各种方法,但这是基线,也是我最直观的方法,但是,我无法将所有三个图叠加为一个:

df_date_grouping = df['month_year'].value_counts().to_frame('Visits').rename_axis('dates').reset_index()
df_date_grouping = df_date_grouping.sort_values(by="dates")  

df2_date_grouping = df2['month_year'].value_counts().to_frame('df2 Visits').rename_axis('dates').reset_index()
df2_date_grouping = df2_date_grouping.sort_values(by="dates")  
df3_date_grouping = df3['month_year'].value_counts().to_frame('df3 Visits').rename_axis('dates').reset_index()
df3_date_grouping = df3_date_grouping.sort_values(by="dates")  
df4_date_grouping = df4['month_year'].value_counts().to_frame('df4 Visits').rename_axis('dates').reset_index()
df4_date_grouping = df4_date_grouping.sort_values(by="dates")  


plt.figure()
df_date_grouping.plot('dates', 'Visits' , color= 'purple')
df2_date_grouping.plot( 'dates', 'df2 Visits', color= 'blue')
df3_date_grouping.plot(  'dates', 'df3 Visits', color= 'orange' )
df4_date_grouping.plot( 'dates', 'df4 Visits', color= 'red')

plt.savefig(path)
plt.clf()

如何将所有三个都放在同一个地块中?

试试这个。

plt.figure()
fig,ax = plt.subplots()
df2_date_grouping.plot( 'dates', 'df2 Visits', color= 'blue',ax = ax)
df3_date_grouping.plot(  'dates', 'df3 Visits', color= 'orange',ax = ax)
df4_date_grouping.plot( 'dates', 'df4 Visits', color= 'red',ax = ax)

您需要将它们绘制在同一轴上。 Pandas 绘图是建立在 Matplotlib 之上的。您可以同时使用 matplotlib 和 pandas。在这种情况下,您将 matplotlib 轴暴露给 pandas plot 并且 pandas 将在相同的轴上绘制。