前言 在github中經常可以看到下麵的日曆圖,可以用來表示每一天在github上的活躍程度。 類似的方法也可以用到空氣質量的可視化方式中來,只要有每天的空氣質量指數就可以。 數據 我這裡使用的是2020年北京市各個監測站點的空氣質量觀測數據,原始數據包含PM2.5,PM10,AQI指數,這裡選擇A ...
前言
在github中經常可以看到下麵的日曆圖,可以用來表示每一天在github上的活躍程度。
類似的方法也可以用到空氣質量的可視化方式中來,只要有每天的空氣質量指數就可以。
數據
我這裡使用的是2020年北京市各個監測站點的空氣質量觀測數據,原始數據包含PM2.5,PM10,AQI指數,這裡選擇AQI作為示例。
這裡對原始數據做了簡單處理,具體過程不贅述,感興趣的話也可以看文末獲取方式。處理後的數據形式如下:
calmap
繪製日曆圖可以用calmap庫直接繪製,安裝直接用pip。
詳細可視化方法如下:
定義可視化方式
Python學習交流Q群:906715085#### def calendar_heatmap(df, title): # 定義顏色 color_list = ['#009966', '#FFDE33', '#FF9A32', '#CC0033', '#660099'] levels = [0, 50, 100, 150, 200, 300] cmap = colors.ListedColormap(color_list) norm = colors.BoundaryNorm(levels, cmap_aqi.N) # 繪圖 fig, ax = plt.subplots(figsize=(18, 9)) calmap.yearplot( df, vmin=0, vmax=300, cmap=cmap, norm=norm, how=None, year=2020, ) cbar_ax = fig.add_axes([0.94, 0.4, 0.015, 0.2]) cb = mpl.colorbar.ColorbarBase( cbar_ax, cmap=cmap, ticks=levels, norm=norm, orientation='vertical', extend='neither', extendrect=True, extendfrac=0.15 ) # 色標 cb.set_ticks([0, 50, 100, 150, 200, 300]) cb.ax.yaxis.set_tick_params(length=0.01) ax.set_ylabel('2020', fontdict=dict(fontsize=25, color='grey')) # 標題 ax.set_title(f'AQI of {title}', fontweight = 'bold', fontsize = 25) plt.savefig(f'{title}_calendar_heatmap.png')
繪圖
cp = df.resample('1d').mean().round(2)['昌平'] calendar_heatmap(cp, 'Changping')
dx = df.resample('1d').mean().round(2)['大興'] calendar_heatmap(dx, 'DaXing')
最後也對兩個測站的空氣質量做了個統計
cp_bin = pd.cut( cp, bins=[0, 50, 100, 150, 200, 300], right=False ).value_counts()
dx_bin = pd.cut( dx, bins=[0, 50, 100, 150, 200, 300], right=False ).value_counts()
最後
這一篇給大家簡單的製作這麼一個日曆圖,代碼就放到上面了,喜歡的小伙伴記得點贊收藏,下一章見啦。