前言

对空气质量小时级别五年数据进行小时变化分析,可以看出污染物浓度在一天中逐小时变化的特征。

分析流程

对数据进行专题二的预处理后,计算出各污染物全时段的各小时的平均浓度,最后进行可视化分析。处理方法是使用小时级别的数据,计算五年所有该小时的平均浓度,从而得到一天中各小时的平均浓度。

核心代码

使用Python透视表函数计算出一天中逐小时的平均浓度,继而可视化分析。

def hourly_data_analysis(self, df_total, station_list, year_list):"""小时级别数据分析:param df_total: 全小时数居:param station_list: 站点列表:param year_list: 年份列表:return: None"""for station in station_list:df_single_station = df_total[df_total['station'] == station]pm10_hour = pd.pivot_table(df_single_station, index='hour', values='PM10', aggfunc='mean')pm25_hour = pd.pivot_table(df_single_station, index='hour', values='PM2.5', aggfunc='mean')so2_hour = pd.pivot_table(df_single_station, index='hour', values='SO2', aggfunc='mean')no2_hour = pd.pivot_table(df_single_station, index='hour', values='NO2', aggfunc='mean')co_hour = pd.pivot_table(df_single_station, index='hour', values='CO', aggfunc='mean')o3_hour = pd.pivot_table(df_single_station, index='hour', values='O3', aggfunc='mean')fig = plt.figure()ax1 = fig.add_subplot(111)ax1.bar(x=co_hour.index.values, height=co_hour.values.reshape(-1), width=0.6, label='CO', color='#e6daa6')ax1.set_ylim(0, 1)ax1.set_yticks(np.linspace(0, 1, 6))plt.legend(ncol=1, loc='upper left', fontsize=8)  # 显示图例plt.ylabel('CO浓度(mg/m${^3}$)')  # 纵坐标轴标题# plt.legend(bbox_to_anchor=(0.25, 0.9))plt.legend(loc='upper left', fontsize=9.5)ax2 = ax1.twinx()ax2.plot(pm10_hour, marker='o', label='PM$_{10}$')ax2.plot(pm25_hour, marker='v', label='PM$_{2.5}$')ax2.plot(so2_hour, marker='<', label='SO$_{2}$')ax2.plot(no2_hour, marker='>', label='NO$_{2}$')ax2.plot(o3_hour, marker='d', label='O$_{3}$')ax2.set_ylim(0, 100)ax2.set_yticks(np.linspace(0, 100, 6))plt.ylabel('五项污染物浓度(${μ}$g/m${^3}$)')plt.xticks(range(0, 25, 4), ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00', '00:00'], rotation=15)  # 倾斜15度plt.legend(ncol=6, fontsize=9.5)plt.grid(axis='y', ls='--')pic_loc0 = Path(self.cf_info['output']['picture']).joinpath(df_single_station['city'].values[0])pic_loc = pic_loc0.joinpath('污染物小时变化特征')if not os.path.exists(pic_loc):os.mkdir(pic_loc)plt.savefig(pic_loc / (df_single_station['station'].values[0] + str(year_list[0]) + '-' + str(year_list[-1]) + '年各污染物浓度日变化.png'), dpi=1200, bbox_inches='tight')plt.show()

结果展示与分析

结果如下图所示,可以比较明显的看出各污染物浓度在一天中的变化特征。

(图片右键新标签页打开会很清晰)

预告

下期为数据分析专题最后一期,主要内容为不同区域的对比分析。

以下是本人独自运营的微信公众号,用于分享个人学习及工作生活趣事,大佬们可以关注一波。

【空气质量数据分析专题九】污染物浓度小时变化分析相关推荐

  1. 【空气质量数据分析专题八】污染物浓度日变化分析

    前言 对空气质量日级别五年数据进行日变化分析,可以看出污染物浓度逐日变化的特征. 分析流程 对数据进行专题二的预处理后,计算出各污染物全时段的各日平均浓度,最后进行可视化分析.日变化分析方式有多种,这 ...

  2. 【空气质量数据分析专题五】污染物浓度年际变化分析

    前言 大气空气质量污染物一般为SO2.NO2 .CO.PM10.PM2.5.O3六项污染物.日级别浓度中,除O3使用最大8小时滑动平均浓度外,其他五项污染物均采用日平均浓度. 除CO浓度单位为mg/m ...

  3. 【空气质量数据分析专题七】污染物浓度月变化分析

    前言 对空气质量日级别五年数据进行月变化分析,可以看出污染物浓度随月份变化的特征. 分析流程 对数据进行专题二的预处理后,计算出各污染物全时段的各月平均浓度,最后进行可视化分析.月变化分析方式有多种, ...

  4. 2014-2022年4月全国空气质量数据分析

    2014-2022年4月所有城市及站点空气质量数据集(更新中)更新时间不固定 时间范围:2014-2022年4月年 数据来源:中国环境监测总站的全国城市空气质量实时发布平台 数据格式说明距离: 全国城 ...

  5. 空气质量数据分析及web实现

    本次课程设计主要是针对大数据计算框架这门课程的总结,同时利用web进行展示,也是对自己之前学习前端的一次小检验.同时也是自己第一次和同学们进行分工合作完成的作业,自己主要负责对所有的内容整合,并进行w ...

  6. 制造业如何进行质量数据分析?附教程,内含大量分析图表!

    目前很多制造型企业拥有了MES.ERP.SPC等业务系统,获得了大量的数据.然而在跨工厂.跨系统的异构数据中,如何找到生产各个环节的规律和异常,如何获得优化见解,是制造型企业面临的关键挑战.通过数据分 ...

  7. Matplotlib空气质量数据分析(附数据集下载)

    使用JupyterLab进行的数据分析 数据集下载 import pandas as pd import numpy as np from pandas import Series, DataFram ...

  8. matlab波形反白,基于MATLAB的海岸污染物浓度扩散实验分析

    海岸污染物图像序列隐含丰富的物质输移扩散的重要特征,通过CCD图片得到所需要的信息具有广泛的应用价值.传统的接触式和单点式测量方法很难全面高效地得到需要的实验结果,而利用CCD等摄像设备进行测量记录, ...

  9. Python数据分析练习:北京、广州PM2.5空气质量分析(1)

    由于雾霾问题,全社会都很关注空气质量,政府也花了很多钱力图改善空气质量.我们作为城市市民经常要问:我们城市的空气质量到底怎样?这几年我们城市的空气质量是在改善还是恶化?我们城市的空气质量与其他城市相比 ...

最新文章

  1. MATLAB_图形学_形态学课程_有川字的车牌牌扣出‘川’字以及车牌号码
  2. python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
  3. HBase总结(十一)hbase Java API 介绍及使用示例
  4. 获取标签的src属性兼容性
  5. 福布斯全球最佳雇主榜:网易排名80 大幅超腾讯阿里
  6. zookeeper思维导图
  7. java中sort的cmp_快速排序(cmp函数详解)
  8. 为什么SpringBoot中main方法执行完毕后程序不会直接退出呢
  9. 贺利坚老师汇编课程32笔记:处理字符串——大小写转换通过与和或运算加减20H
  10. SPOJ Qtree系列
  11. STM32CubeIDE USB Audio声卡 WM8978 + I2S
  12. 别踩白块儿游戏代码html,别踩白块儿.html · 知足常乐大哥哥/not-step-on-white-block - Gitee.com...
  13. 自然语言处理面试基础
  14. 鲁班图片压缩实现仿微信九宫格选择图片效果
  15. 简谈Oracle体系结构
  16. 基于Python库surprise的电影推荐系统
  17. 将SVG文件转换为XML文件
  18. 使用pytorch模型学习框架easyocr模块识别行程码图片文字并使用Flask Web返回指定信息json字符串
  19. 学游戏建模,怎么能没有几款上手的软件,8款超好用的3D建模软件
  20. unity 鼠标放置 ui_ui层次结构以及不常见但至关重要的任务放置在哪里

热门文章

  1. webstorm安装教程详解
  2. KMP--君住长江头,我住长江尾,日日思君不见君,共饮长江水
  3. git 取消commit
  4. 删除自带python版本后系统崩溃,死性不改重新配环境。
  5. linux下文件读写
  6. 如何用Redis实现分布式锁?
  7. 【Android-】android 8.0 通知栏Notification适配、自定义铃声及其channel介绍
  8. UOS 切换任务栏模式为时尚模式或高效模式
  9. 求十个数最大的数的流程图
  10. docker重启全部镜像