python分析数据走势_Python数据可视化:2018年北上广深空气质量分析

本文主要是介绍python分析数据走势_Python数据可视化:2018年北上广深空气质量分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有态度地学习

就在这周偶然看到一个学弟吐槽天津的空气,不禁想起那段厚德载雾,自强不吸的日子。

无图无真相,下图为证。

163f50257909d66d122321df45e8832c.png

左边的图是去年2月份的时候,这样的空气真的难得一见!

右边的是吐槽以及我个人第一次买口罩!!!

口罩用的还行,因为那个时候做课设,经常要两个校区跑,基本上空气不好我就会带上。

题目好像是有关液压及气压的传动系统,手画A0图...

这应该是快两年前的事了,时光飞逝呐。

所以这回先对2017年天津的空气质量情况进行分析,然后再是北上广深。

/ 01 / 网页分析

84ab3c35d5bc6ee10f564e59ec9b9b37.png

网站没有反爬,所以直接抓取信息就好了。

看见没有,妥妥的严重污染,2016年12月份买的口罩派上用场啦!

这里简单给大家科普一下有关AQI,PM2.5的知识。

b3477c2a06a2ca1794dcc5eeff0e7115.png

944126ac3aebee8a79869246ab2a9511.png

又是重操旧业,我的PPT水平还是很水呢~

/ 02 / 数据获取

获取代码如下所示。

import time

import requests

from bs4 import BeautifulSoup

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'

}

for i in range(1, 13):

time.sleep(5)

# 把1转换为01

url = 'http://www.tianqihoubao.com/aqi/tianjin-2017' + str("%02d" % i) + '.html'

response = requests.get(url=url, headers=headers)

soup = BeautifulSoup(response.text, 'html.parser')

tr = soup.find_all('tr')

# 去除标签栏

for j in tr[1:]:

td = j.find_all('td')

Date = td[0].get_text().strip()

Quality_grade = td[1].get_text().strip()

AQI = td[2].get_text().strip()

AQI_rank = td[3].get_text().strip()

PM = td[4].get_text()

with open('air_tianjin_2017.csv', 'a+', encoding='utf-8-sig') as f:

f.write(Date + ',' + Quality_grade + ',' + AQI + ',' + AQI_rank + ',' + PM + '\n')

成功获取数据。

ced7d875320963dc5978d3e4e97d9530.png

/ 03 / 天津

同样不上源码,这里有必要说一波,因为我觉得源码放上去排版就不好看了...

其次我要秉承以前混迹P圈(PPT)得到的优良传统,热爱分享,百度云盘你值得拥有。

所以公众号回复天气。即可获取全部可视化源码及相关文件。

以前天天去下载PPT大神的大作,然后观摩,可惜的是PPT水平还是那么菜~

01  AQI全年走势图

00fa3bd3aa205c4ca5a7c6399cc60a3e.png

92.5是年均AQI值,从上面科普知识里可以知道,2017年天津整体空气质量只能是「良」中的下下等水平,与轻度污染近在咫尺。

02  AQI月均走势图

c40cc147570f9d2d8f22ce0998e6cd37.png

从月均的走势图就能看出,1月的空气质量最差,8月的空气质量最好,当也并不是有多好,充其量也就是个「良」!

03  AQI季度箱形图

74dacb81aa0d812871c9bfd860d3590b.png

箱形图,显示一组数据分散情况资料的统计图。

数据里有最大值、最小值、中位数和两个四分位数。

这里可以看出,2017年天津的季度AQI均值差距不是很大。

但是一、二、四季度有明显的波动,空气质量有时会变得很差。

04  PM2.5全年走势图

0153633a78ece6361d7c930551468cb8.png

59.87是年均PM2.5值,已经远超过国家二级标准限值35了。

其实天津给我留下的印象就是天气经常灰蒙蒙,时常还会变点颜色,比如黄色~

一年下不了几次雨,及其干燥。所以那个最低值11,我猜那时候估计是刮大风。

05  PM2.5月均走势图

34b00f55238b8f135591c4894f319296.png

和AQI的走势差不多,同样是1月最高,8月最低。

06  PM2.5季度箱形图

d1b39fd32fe93cd87533ec43dfab1ae6.png

说实话,看了这个图,我不知道天津的「大哥」及「姐姐」们是如何做到自强不吸的。

基本上四个季度都超标了,一年不超标的估计也就那么几次。

07  PM2.5指数日历图

3dfb92a39da9a07c475c4e7be37b9cc4.png

f852213ff98fe70388b1b45fbe86efe0.png

8a20106ca46c9c0e58423d3157984e0c.png

日均PM2.5国家二级标准为75,从上面的热力图看,基本上轻度污染过半了。

另外一月还是重灾区,天色黄黄的...

其实每逢雾霾,基本上就是待宿舍了。而且1月份是考试月,刚好窝宿舍预习课本~

08  天津全年空气质量情况

2e8b999257217daf2ce75f136a634e46.png

「良」和「轻度污染」占了大头,「优」只能在角落里瑟瑟发抖,足以说明空气之差。

不过该上课还是要上课,谁叫那时宿舍和教室离得近(走过去5分钟不到)。

/ 04 / 北上广深

01  北上广深AQI全年走势图

5d89c7111035b6efda60297a477cefe8.png

北京月均AQI最低也就50左右,看来今年全年差不多都在「优」以下了。

不过相比前几年,京津冀空气已经好了不少(政策),真的。

上海和广州差不多,深圳与北京算是鲜明对比。

02  北上广深PM2.5全年走势图

4fe4b80271887f0f6d5a7dd3c55a1424.png

北京一如既往的高调。

03  北上广深全年空气质量情况

36e95ea59c466aec29496b85ddea09f3.png

深圳几乎都是「优」和「良」,上海和广州和上面说的一样,北京的「优」已经不少了。

那么你所在的城市空气质量又是如何?

公众号回复天气。即可获取全部源码。

文末点个赞,比心!!!

···  END  ···

这篇关于python分析数据走势_Python数据可视化:2018年北上广深空气质量分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/698422

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

Python海象运算符:=的具体实现

《Python海象运算符:=的具体实现》海象运算符又称​​赋值表达式,Python3.8后可用,其核心设计是在表达式内部完成变量赋值并返回该值,从而简化代码逻辑,下面就来详细的介绍一下如何使用,感兴趣... 目录简介​​条件判断优化循环控制简化​推导式高效计算​正则匹配与数据提取​性能对比简介海象运算符