Как отобразить стандартное отклонение по календарному месяцу с использованием группового графика и построить его? - PullRequest
0 голосов
/ 11 апреля 2020

Набор данных (df), который я использую, основан на наборе цен Avocado, который можно найти ниже:

https://www.kaggle.com/neuromusic/avocado-prices

Я пытаюсь построить график волатильность цен (стандартное отклонение) авокадо по годам, месяцам и типам авокадо, как показано на рисунке ниже

Price Volatility Chart

Я пытался закодировать его следующим образом но я продолжаю получать сообщение об ошибке «значение» должно быть экземпляром str или байтов, а не с плавающей точкой:

month_dict = {1 : 'Jan', 
          2: 'Feb', 
          3: 'Mar', 
          4: 'Apr', 
          5: 'May', 
          6: 'Jun', 
          7: 'Jul', 
          8: 'Aug', 
          9: 'Sep', 
          10: 'Oct', 
          11: 'Nov', 
          12: 'Dec'}

cal_years =[2015, 2016, 2017]
types = ['conventional','organic']
df['Month'] = pd.to_datetime(df.index).month
fig, ax = plt.subplots(2,3, figsize=(15,10), sharey=True)
for type in types:
    for axy in range(2):
        for axx in range(3):            
                df_plot = df[(df['type'] == types[axy]) & (df['year'] == cal_years[axx])]
                df_plot = df_plot.groupby('Month', as_index=False)['AveragePrice'].std()                
                df_plot['Month'] = df_plot['Month'].map(month_dict)                
                ax[axy, axx].plot('Month','AveragePrice',data=df_plot, color='blue',marker='o')
                ax[axy, axx].set_title(str(cal_years[axx]) + ' ' + types[axy])
                ax[axy, axx].tick_params(axis='x', rotation=45)
fig.suptitle('Season price fluctuation', size=16)

Буду признателен, если кто-нибудь сможет указать, почему код работает не так, как я ожидал. Большое спасибо

...