Python數(shù)據(jù)可視化:2018年北上廣深空氣質(zhì)量分析(附完整代碼)
就在這周偶然看到一個(gè)學(xué)弟吐槽天津的空氣,不禁想起那段厚德載霧,自強(qiáng)不吸的日子。
無(wú)圖無(wú)真相,下圖為證。
左邊的圖是去年2月份的時(shí)候,這樣的空氣真的難得一見(jiàn)!
右邊的是吐槽以及我個(gè)人第一次買口罩!!!
口罩用的還行,因?yàn)槟莻€(gè)時(shí)候做課設(shè),經(jīng)常要兩個(gè)校區(qū)跑,基本上空氣不好我就會(huì)帶上。
題目好像是有關(guān)液壓及氣壓的傳動(dòng)系統(tǒng),手畫A0圖...
這應(yīng)該是快兩年前的事了,時(shí)光飛逝吶。
所以這回先對(duì)2017年天津的空氣質(zhì)量情況進(jìn)行分析,然后再是北上廣深。
01 網(wǎng)頁(yè)分析
網(wǎng)站沒(méi)有反爬,所以直接抓取信息就好了。
看見(jiàn)沒(méi)有,妥妥的嚴(yán)重污染,2016年12月份買的口罩派上用場(chǎng)啦!
這里簡(jiǎn)單給大家科普一下有關(guān)AQI,PM2.5的知識(shí)。
又是重操舊業(yè),我的PPT水平還是很水呢~
2 數(shù)據(jù)獲取
獲取代碼如下所示。
- 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轉(zhuǎn)換為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')
- # 去除標(biāo)簽欄
- 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 + '
- ')
成功獲取數(shù)據(jù)。
3 天津
同樣不上源碼,這里有必要說(shuō)一波,因?yàn)槲矣X(jué)得源碼放上去排版就不好看了...
其次我要秉承以前混跡P圈(PPT)得到的優(yōu)良傳統(tǒng),熱愛(ài)分享,百度云盤你值得擁有。
所以公眾號(hào)回復(fù)天氣。即可獲取全部可視化源碼及相關(guān)文件。
以前天天去下載PPT大神的大作,然后觀摩,可惜的是PPT水平還是那么菜~
01 AQI全年走勢(shì)圖
92.5是年均AQI值,從上面科普知識(shí)里可以知道,2017年天津整體空氣質(zhì)量只能是「良」中的下下等水平,與輕度污染近在咫尺。
02 AQI月均走勢(shì)圖
從月均的走勢(shì)圖就能看出,1月的空氣質(zhì)量最差,8月的空氣質(zhì)量最好,當(dāng)也并不是有多好,充其量也就是個(gè)「良」!
03 AQI季度箱形圖
箱形圖,顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計(jì)圖。
數(shù)據(jù)里有最大值、最小值、中位數(shù)和兩個(gè)四分位數(shù)。
這里可以看出,2017年天津的季度AQI均值差距不是很大。
但是一、二、四季度有明顯的波動(dòng),空氣質(zhì)量有時(shí)會(huì)變得很差。
04 PM2.5全年走勢(shì)圖
59.87是年均PM2.5值,已經(jīng)遠(yuǎn)超過(guò)國(guó)家二級(jí)標(biāo)準(zhǔn)限值35了。
其實(shí)天津給我留下的印象就是天氣經(jīng)常灰蒙蒙,時(shí)常還會(huì)變點(diǎn)顏色,比如黃色~
一年下不了幾次雨,及其干燥。所以那個(gè)最低值11,我猜那時(shí)候估計(jì)是刮大風(fēng)。
05 PM2.5月均走勢(shì)圖
和AQI的走勢(shì)差不多,同樣是1月最高,8月最低。
06 PM2.5季度箱形圖
說(shuō)實(shí)話,看了這個(gè)圖,我不知道天津的「大哥」及「姐姐」們是如何做到自強(qiáng)不吸的。
基本上四個(gè)季度都超標(biāo)了,一年不超標(biāo)的估計(jì)也就那么幾次。
07 PM2.5指數(shù)日歷圖
日均PM2.5國(guó)家二級(jí)標(biāo)準(zhǔn)為75,從上面的熱力圖看,基本上輕度污染過(guò)半了。
另外一月還是重災(zāi)區(qū),天色黃黃的...
其實(shí)每逢霧霾,基本上就是待宿舍了。而且1月份是考試月,剛好窩宿舍預(yù)習(xí)課本~
08 天津全年空氣質(zhì)量情況
「良」和「輕度污染」占了大頭,「優(yōu)」只能在角落里瑟瑟發(fā)抖,足以說(shuō)明空氣之差。
不過(guò)該上課還是要上課,誰(shuí)叫那時(shí)宿舍和教室離得近(走過(guò)去5分鐘不到)。
4 北上廣深
01 北上廣深A(yù)QI全年走勢(shì)圖
北京月均AQI最低也就50左右,看來(lái)今年全年差不多都在「優(yōu)」以下了。
不過(guò)相比前幾年,京津冀空氣已經(jīng)好了不少(政策),真的。
上海和廣州差不多,深圳與北京算是鮮明對(duì)比。
02 北上廣深PM2.5全年走勢(shì)圖
北京一如既往的高調(diào)。
03 北上廣深全年空氣質(zhì)量情況
深圳幾乎都是「優(yōu)」和「良」,上海和廣州和上面說(shuō)的一樣,北京的「優(yōu)」已經(jīng)不少了。
那么你所在的城市空氣質(zhì)量又是如何?
作者:法納斯特,Python愛(ài)好者,喜歡爬蟲(chóng),數(shù)據(jù)分析以及可視化。