ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Python】绘制空气质量日历图

2022-04-08 14:31:38  阅读:219  来源: 互联网

标签:title Python 日历 300 cmap ax 空气质量 norm


前言

在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()

 

在这里插入图片描述

最后
这一篇给大家简单的制作这么一个日历图,代码就放到上面了,喜欢的小伙伴记得点赞收藏,下一章见啦。

在这里插入图片描述

标签:title,Python,日历,300,cmap,ax,空气质量,norm
来源: https://www.cnblogs.com/123456feng/p/16112309.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有