Python数据可视化:2018年北上广深空气质量分析

简介:

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

无图无真相,下图为证。

f0659a672fb8d033b264c54e30cb0a020340f200

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

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

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

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

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

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

/ 01 / 网页分析

3ec84cec4454348ffd028f874a97399d1d7542f3

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

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

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

3236f520786e55b6a4201ee4650ea902f4fa7070

又是重操旧业,我的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')

成功获取数据。

fa28467af0ef9cfa86ac1a43a11910eaf8369926

/ 03 / 天津

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

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

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

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

01 AQI全年走势图

5290df6474fd42608b7e06cc88594228e2128492

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

02 AQI月均走势图

d82f851e118cf33070047cb3b7385e5c0f6a8f73

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

03 AQI季度箱形图

e8c0d59cfba0e6095dd9ee3a2bba06c6e3318ea6

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

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

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

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

04 PM2.5全年走势图

fd903cdffd310f6c31795581cc8711ccf64bb588

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

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

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

05 PM2.5月均走势图

09825714b750aef81f1f887f67aee81de8d700d6

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

06 PM2.5季度箱形图

3ea93b761830ba7b146aa3ca50865a25f814ed7c

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

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

07 PM2.5指数日历图

e70a8f80e35f9b95172ba80c5f88d5418e3adf6d

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

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

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

08 天津全年空气质量情况

42fed16323c8c720618e3431e72c9d1180e87ea0

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

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

/ 04 / 北上广深

01 北上广深AQI全年走势图

764c78dd4440f37b4e4e2091807ec47968ccfbb7

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

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

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

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

9ceb41e35cbaa3e44ba3eb9c2fe8767c19614aa6

北京一如既往的高调。

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

fff33bb0413865e6dd519882e939203aa15e1a3e

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

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


原文发布时间为:2018-11-22

本文作者:法纳斯特

本文来自云栖社区合作伙伴“ CDA数据分析师”,了解相关信息可以关注“CDA数据分析师”。

相关文章
|
3天前
|
机器学习/深度学习 数据挖掘 网络架构
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
15 0
|
4天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
28 1
|
3天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
24 0
|
1天前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
|
1天前
|
机器学习/深度学习 数据采集 算法
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
|
1天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
5 0
|
3天前
|
机器学习/深度学习 算法 vr&ar
PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列
PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列
15 4
|
3天前
|
机器学习/深度学习 算法 Python
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
22 4
|
3天前
|
API vr&ar Python
Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列(上)
Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列
30 5
|
3天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
10 0