使用Python绘制空气质量日历图

 更新时间:2022年05月08日 10:23:26   作者:蚂蚁ailing  
这篇文章主要介绍了使用Python绘制空气质量日历图,文章基于Python绘制的相关知识展开对空气质量日历图的绘制,感兴趣的小伙伴可以参考一下

前言

在github中经常可以看到下面的日历图,可以用来表示每一天在github上的活跃程度。

类似的方法也可以用到空气质量的可视化方式中来,只要有每天的空气质量指数就可以。

数据

我这里使用的是2020年北京市各个监测站点的空气质量观测数据,原始数据包含PM2.5,PM10,AQI指数,这里选择AQI作为示例。

这里对原始数据做了简单处理,具体过程不赘述,感兴趣的话也可以看文末获取方式。

处理后的数据形式如下:

calmap

绘制日历图可以用calmap库直接绘制,安装直接用pip。

详细可视化方法如下:

定义可视化方式

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

最后

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

到此这篇关于使用Python绘制空气质量日历图的文章就介绍到这了,更多相关Python绘制日历图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Python中的元组介绍

    关于Python中的元组介绍

    大家好,本篇文章主要讲的是关于Python中的元组介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 如何用Python实现自动发送微博

    如何用Python实现自动发送微博

    大家好,本篇文章主要讲的是如何用Python实现自动发送微博,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏
    2022-01-01
  • 在Python中操作日期和时间之gmtime()方法的使用

    在Python中操作日期和时间之gmtime()方法的使用

    这篇文章主要介绍了在Python中操作日期和时间之gmtime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python使用代理ip访问网站的实例

    python使用代理ip访问网站的实例

    今天小编就为大家分享一篇python使用代理ip访问网站的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python循环控制之break和continue流程控制语句

    python循环控制之break和continue流程控制语句

    这篇文章主要介绍了python循环控制之break流程控制语句,Python中提供了两个关键字用来控制循环语句,分别是break和continue,本文都有介绍,需要的朋友可以参考一下
    2022-03-03
  • pytorch 如何使用batch训练lstm网络

    pytorch 如何使用batch训练lstm网络

    这篇文章主要介绍了pytorch 如何使用batch训练lstm网络的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python安装Graphviz超详细图文教程

    Python安装Graphviz超详细图文教程

    这篇文章主要介绍了Python安装Graphviz超详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • python实现最小二乘法的方法详解

    python实现最小二乘法的方法详解

    这篇文章主要介绍了如何基于python实现最小二乘法的方法,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2024-02-02
  • Python实现的寻找前5个默尼森数算法示例

    Python实现的寻找前5个默尼森数算法示例

    这篇文章主要介绍了Python实现的寻找前5个默尼森数算法,简单讲述了默尼森数的概念,并结合实例形式分析了Python求解默尼森数算法的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • python爬虫爬取笔趣网小说网站过程图解

    python爬虫爬取笔趣网小说网站过程图解

    这篇文章主要介绍了python爬虫爬取笔趣网小说网站过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论