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

顾言
顾言
发布时间:2026-10-15| 6人浏览过
原创

本文介绍如何利用Python的calmap库绘制空气质量日历热力图。通过处理2020年北京监测站点的AQI数据,展示如何定义颜色映射、生成全年日历图及统计各站点空气质量分布,为环境数据可视化提供实用示例。

前言

在GitHub平台上,用户常能看到一种展示每日活跃度的日历图。这种可视化方式直观地反映了代码提交或项目参与的热度分布。

同样的可视化思路同样适用于空气质量数据的展示,只要拥有每日的空气质量指数(AQI)数据,即可生成类似的日历热力图。

数据

本文示例采用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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。