基于Python的济南市空气质量的可视化分析

作者: 赵焕芳 张岳

基于Python的济南市空气质量的可视化分析0

摘要:空气质量是影响人类健康和环境的重要因素。近年来,工业化和城市化进程加剧了空气污染,对空气质量进行有效监测和分析至关重要。本文利用Python爬取了济南市2014—2023年的空气质量数据,并运用数据可视化技术对AQI指数和主要污染物变化趋势进行了分析,结果表明,济南市空气质量呈现持续改善的趋势,同时存在显著的季节性变化。研究为进一步优化空气质量管理策略和制定污染防治政策提供了科学依据。

关键词:空气质量;Python;数据采集;可视化分析;AQI指数

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2025)09-0111-04 开放科学(资源服务) 标识码(OSID) :

0 引言

随着互联网+的高速发展,全球数据规模呈爆发式增长,大数据时代已经到来[1]。在此背景之下,如何从海量数据中挖掘价值信息并进行可视化分析,已成为各行各业面临的挑战。

目前,我国工业化进程呈现出持续加强的态势,大量的工业生产和能源消耗导致了大气污染物的排放增加,包括颗粒物、二氧化硫、氮氧化物、挥发性有机物等。这些污染物的排放会直接影响空气质量,加剧空气污染问题。

基于以上两点,本文收集了济南市2014 年至2023年间的空气质量数据,包括AQI指数(空气质量指数) 、PM2.5(细颗粒物) 、PM10(可吸入颗粒物) 、SO2(二氧化硫) 、NO2(二氧化氮) 、CO(一氧化碳) 、O3(臭氧) 等指标,利用Python中的数据处理和可视化库,对数据进行清洗、分析和可视化呈现并提出了一些改善空气质量的建议,期望能为济南市及其他城市的空气质量管理和决策提供参考。

1 数据获取与预处理1.1 数据获取本文使用Python的requests和BeautifulSoup库爬取网站http://www.tianqihoubao.com的济南市空气质量数据。

1) 网页 URL分析

济南市2014年1月份的空气质量数据网址为http://www.tianqihoubao.com/aqi/jinan-201401.html,通过与2014年2月份、2015年1月份的空气质量数据网址对比,发现三者的区别仅出现在“201401”“201402”“201501”,即年份和月份之间, 随即编写带有年份year参数的函数代码实现对网址的循环爬取,相关代码如下:

将爬取的数据保存为CSV格式,共计3595条记录,数据格式如表1所示。

1.2 数据预处理

对获取的数据进行初步检查,未发现缺失值。网站按AQI指数将空气质量等级划分为6类,分别对应AQI 指数为:优(0-50) 、良(51-100) 、轻度污染(101-150) 、中度污染(151-200) 、重度污染(201-300) 、严重污染(>300) 。在检查数据时发现有31条AQI指数在201-300的数据记录将空气质量等级划分为了严重污染,按照下面的代码处理完成后,异常值也处理完毕,数据预处理工作基本完成。

mask = (data[′AQI 指数′] >= 201) & (data[′AQI 指数′] <= 300) & (data[′质量等级′] == ′严重污染′)

data.loc[mask, ′质量等级′] = ′重度污染′

2 数据可视化分析

2.1 Python可视化库

数据可视化可以直观地展示数据特征和规律,已成为数据分析的重要手段[2]。Python提供了丰富的可视化库,从简单的静态图表到复杂的交互式可视化,Python 均可实现。其中Matplotlib是最基础和最常用的可视化库,功能强大,适用于各种2D图表,常用来绘制折线图、散点图、柱状图、直方图、饼图等;Seaborn基于Matplotlib,提供更高级的接口和美观的默认样式,常用来绘制热力图、箱线图、分布图、散点图等。本文就以Matplotlib和Seaborn作为主要的Python可视化工具。

2.2 总体概况

“十三五”以来,济南市生态环境系统深入学习贯彻习近平生态文明思想,坚持节约优先、保护优先、自然恢复的主方针,以改善环境质量为核心,全力打好大气、水体、土壤污染防治三大战役。近年来,济南市的空气质量状况有所提升,各类污染物指标呈现下降趋势,雾霾等恶劣天气很少出现。

数据分析是挖掘数据价值的关键[3]。对济南市2014年1月至2023年12月的数据进行分析,空气质量等级为良的天数占比最大为53.0%,空气质量等级为优的天数占比为11.5%,空气质量等级为严重污染的天数仅占1.0%。纵观这十年济南市空气质量等级分布情况可以发现,空气质量等级为良的天数在全年中占比逐年增大,空气质量等级为轻度污染天数的占比在逐年减小,尤其是2022年严重污染天数为0天,重度污染和中度污染天数的总和也仅为16天,占全年天数的4%,这与济南市的空气质量状况日益提升的情况相符合。济南市2014—2023年空气质量等级频率分布如图1所示。济南市2014—2023年度空气质量等级分布如图2所示。

2.3 AQI 指数的可视化分析

空气质量指数(Air Quality Index) 是定量描述空气质量状况的指数,用于大气环境质量评价以及污染控制和管理,其数值越大说明空气污染状况越严重,对人体健康的危害也就越大[4]。它通过监测某一段时间内PM2.5、PM10、SO2 等对象的平均浓度,得到其各自的AQI值,最大的值即为当时的空气质量状况。本文基于Python 的Matplotlib 和seaborn 库,分别绘制出济南市2014—2023年年度、月度平均AQI指数变化趋势折线图。

观察变化趋势,近十年济南市年平均AQI指数整体呈现下降趋势,但2023 年相较2022年年度平均AQI指数有抬头趋势。2014—2017年济南市年度平均AQI指数虽然高于100,但一直保持下降的趋势,尤其是2015—2016年年度平均AQI指数下降了100多,这与2015年,济南市按照国家、省关于开展环境保护大检查的有关要求,开展全市环境保护大检查工作,查处了一大批环境违法行为有关。

观察近十年济南市月平均AQI指数变化趋势可以发现有较强的季节性变化趋势。本文将 12月至次年 2月定义为冬季,3-5 月为春季,6-8 月为夏季,9-11 月为秋季[5]。 济南市 AQI 指数呈现冬季最高、夏季最低的季节性变化规律,秋季空气质量优于春季,与夏季较为接近。济南市2014—2023年年度、月度平均AQI指数变化趋势如图3所示。

2.4 6类污染物的可视化分析

基于济南市2014—2023年PM2.5、PM10、SO2、NO2、CO、O3数据,分析得出济南市排名前三的污染物分别为PM10、PM2.5、O3,其中2014 年PM10 的平均浓度高达175 μg/m3,CO这种污染物在济南市浓度很低,基本与0持平。统计近十年六种主要污染物平均浓度,发现PM10、PM2.5、NO2、SO2四种污染物呈现下降趋势,CO基本保持不变,而O3有轻微上升趋势。

另外,统计结果显示各污染物有一定的季节性变化,其中PM10和O3受季节性影响变化尤为明显。PM10的平均浓度在冬季最高,能达到125μg/m3以上,夏季浓度最低但也达到75μg/m3,O3与之恰恰相反,其平均浓度在夏季最高,冬季最低,春秋两季基本持平。PM2.5、NO2、SO2的平均浓度也在一定程度上受到季节性影响,呈现出冬季高,夏季低的情况,CO基本不受季节性的影响。

热力图能展示不同事物之间的相关性,热力图中的每个单元格表示两个污染物之间的相关系数,数值范围从-1到1。其中1表示完全正相关(即两个变量总是一起增加或减少) ,-1表示完全负相关(即一个变量增加时另一个变量总是减少,反之亦然) ,0表示没有相关性。本文通过绘制济南市主要空气污染物之间的相关性热力图得到以下信息:PM2.5和PM10相关系数为0.86,说明这两种颗粒物之间存在很强的正相关性,通常一起升高或降低,PM2.5和CO、PM10和CO也有很强的正相关性;PM2.5和SO2、PM10和SO2、NO2和CO表现出弱相关性;臭氧(O3) 与PM2.5、PM10、SO2、NO2和CO 均表现出负相关性。济南市各污染物年平均浓度变化趋势及季节性变化趋势如图4所示。

3 结论与讨论

通过对济南市2014—2023年空气质量及主要污染物的分析,得出以下结论。

① 近十年来,济南市空气质量持续改善,优良天数逐年增加,AQI指数及主要污染物浓度呈现下降趋势。

② 空气质量和污染物浓度表现出明显的季节性变化,冬季污染最为严重,夏季空气质量最佳,春秋两季变化相对平稳。

③ 污染物间的相关性分析为空气质量管理和政策制定提供了有力支持。例如,PM2.5与PM10浓度具有强正相关性,表明在减少PM2.5的同时可能也会降低PM10的浓度。而臭氧与其他污染物的负相关性提示,在减少某些污染物时需考虑对臭氧浓度的潜在影响。

总体来看,济南市通过有效的政策实施和环境治理,空气质量显著改善,展现了生态文明建设的成效。然而,仍需关注季节性变化和主要污染物之间的联动效应,尤其是在冬季污染严重的情况下,应采取针对性措施。未来的治理策略应在考虑多种污染物相互关系的基础上,进一步提升治理效果,确保市民的健康与福祉。

经典小说推荐

杂志订阅