Skip to main content
 首页 » 编程设计

python之如何为每个月做子图

2025年05月04日20xiaohuochai

我已按月份和日期对数据集进行分组,并添加了第三列来计算每天的数据。

之前的数据框

    month   day   
0    1      1    
1    1      1     
2    1      1       
.. 
3000 12      31    
3001 12      31    
3002 12      31      

现在的数据框:

   month   day  count 
0    1      1    300 
1    1      2    500 
2    1      3    350   
.. 
363  12      28   700 
364  12      29   1300 
365  12      30   1000   

如何为每个月做子图,x 是天数,y 是计数

    import pandas as pd 
    import matplotlib.pyplot as plt 
    %matplotlib inline 
    df= pd.read_csv('/home/rand/Downloads/Flights.csv') 
    by_month= df.groupby(['month','day']).day.agg('count').to_frame('count').reset_index() 

我是数据科学领域的初学者

请您参考如下方法:

试试这个

fig, ax = plt.subplots() 
ax.set_xticks(df['day'].unique()) 
df.groupby(["day", "month"]).mean()['count'].unstack().plot(ax=ax) 

以上代码将为您提供 12 行,代表一个图中的每个月。如果你想在这几个月有 12 个单独的子图,试试这个:

fig = plt.figure() 
for i in range(1,13): 
    df_monthly = df[df['month'] == i] # select dataframe with month = i 
    ax = fig.add_subplot(12,1,i) # add subplot in the i-th position on a grid 12x1    
    ax.plot(df_monthly['day'], df_monthly['count']) 
    ax.set_xticks(df_monthly['day'].unique()) # set x axis