Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示
前言
前文講述了ppi-cpi和m0-m1-m2的圖形繪制,在本文中繼續(xù)分享一個(gè)反映經(jīng)濟(jì)活動(dòng)景氣度的指標(biāo)PMI
,在本文中還是采用爬蟲的方式獲取數(shù)據(jù),然后通過matplotlib
繪圖工具將PMI
逐年數(shù)據(jù)進(jìn)行展示。對于新手來講,會學(xué)習(xí)到python
的基礎(chǔ)知識、爬蟲以及圖形繪制的知識。
PMI 數(shù)據(jù)獲取
在獲取數(shù)據(jù)之前,先講述一下PMI
(采購經(jīng)理人指數(shù)) 數(shù)據(jù)背后的含義: 大家都知道,制造業(yè)是一個(gè)國家的立國之本,那么PMI
就是衡量一個(gè)國家制造業(yè)發(fā)展運(yùn)行情況的指標(biāo),通常情況下,比 50% 為分界線來經(jīng)濟(jì)強(qiáng)弱的分水嶺,大于 50% 則代表制造業(yè)處于擴(kuò)張,處理 40-50 則代表衰退,40 以下就是蕭條了。
既然是數(shù)據(jù)獲取,就需要找一個(gè)權(quán)威的網(wǎng)站獲取數(shù)據(jù),這里小編采用東方財(cái)富網(wǎng)的數(shù)據(jù),這里直接給出頁面的訪問地址:
# 貨幣供應(yīng)量數(shù)據(jù)訪問地址 https://data.eastmoney.com/cjsj/pmi.html
采購經(jīng)理人指數(shù)的數(shù)據(jù)來源如下圖所示,這里只獲取制造業(yè)和非制造業(yè)的指數(shù)數(shù)據(jù)即可,同比增長數(shù)據(jù)就不去獲取了。
既然知道了采購經(jīng)理人指數(shù)的來源,怎么獲取數(shù)據(jù)呢,是不是要復(fù)制頁面進(jìn) excel 在進(jìn)行解析,如果這樣的做話,費(fèi)時(shí)費(fèi)力。我想諸位頁注意到了表格下方有分頁,那么肯定是有通過 ajax 和后臺進(jìn)行通信的,通過觀察可以發(fā)現(xiàn)如下接口,數(shù)據(jù)交互的結(jié)果如下圖所示:
#采購經(jīng)理人指數(shù) https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=200&mkt=21 # 這里也同樣貼了前文中貨幣供應(yīng)量接口、 ppi 和 cpi 的接口,會發(fā)現(xiàn)都是一樣的,只不過mkt的參數(shù)不一樣 # 貨幣供應(yīng)量接口 https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=200&mkt=11 # ppi 數(shù)據(jù)和cpi 數(shù)據(jù) https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=10&mkt=22 https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=10&mkt=19
至于數(shù)據(jù)的獲取,還是使用原理的方式進(jìn)行操作,使用python
抓取數(shù)據(jù),這里采用requests
來獲取數(shù)據(jù):
body = requests.get(req_url).text body = body.replace("(", "").replace(")", "") data_list = body.split("\",\"") # 定義數(shù)據(jù) date_list, pmi1_list, pmi2_list = [], [], [] for node in data_list: node = node.replace("]", "").replace("[", "").replace("\"", "") arr_list = node.split(",") date = arr_list[0] if date < "2010-01-01": continue # 時(shí)間數(shù)據(jù) date_list.append(date) # 數(shù)據(jù)操作存儲 pmi1_list.append(float(arr_list[1])) pmi2_list.append(float(arr_list[3])) print(node)
最終獲取到的數(shù)據(jù)如下圖所示:
pmi 圖形繪制
在繪制圖形之前,需要先對數(shù)據(jù)進(jìn)行處理:
- 1 數(shù)據(jù)需要進(jìn)行加工,提取需要展示的數(shù)據(jù),而后數(shù)據(jù)的格式需要轉(zhuǎn)換。
- 2 在數(shù)據(jù)處理時(shí),還是按照制造業(yè)和非制造業(yè)、時(shí)間的列表來獲取數(shù)據(jù)。
- 3 依舊使用 np.asarray 創(chuàng)建數(shù)據(jù),進(jìn)行圖形繪制的準(zhǔn)備工作。
按照以上的觀點(diǎn),數(shù)據(jù)處理的代碼如下圖所示:
對于圖形的繪制,有以下幾點(diǎn):
- 1 圖形中需要展示制造業(yè)和非制造業(yè)的數(shù)據(jù)情況,同時(shí)展示圖例進(jìn)行標(biāo)識。
- 2 設(shè)置指標(biāo)為 50 和 40 水平線,用于設(shè)置標(biāo)準(zhǔn)對比線型。
最后,經(jīng)過這些編碼,得到最終的制造業(yè)和非制造業(yè)指數(shù)對比圖形如下:
總結(jié)
文章介紹了簡單的python
爬蟲,并使用numpy
進(jìn)行了簡單的數(shù)據(jù)處理,最終使用matplotlib
進(jìn)行圖形繪制,實(shí)現(xiàn)了直觀的方式展示制造業(yè)和非制造業(yè)指數(shù)圖形。使用接口的方式獲取數(shù)據(jù)可以隨時(shí)獲取數(shù)據(jù)更新重新繪制圖形,省去了數(shù)據(jù)重新抓取的步驟。
到此這篇關(guān)于Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示的文章就介紹到這了,更多相關(guān)Python PMI 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python線程池的實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了python線程池的實(shí)現(xiàn)方法,代碼簡單實(shí)用,供大家參考使用2013-11-11windows系統(tǒng)Tensorflow2.x簡單安裝記錄(圖文)
這篇文章主要介紹了windows系統(tǒng)Tensorflow2.x簡單安裝記錄(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python爬蟲進(jìn)階之Beautiful Soup庫詳解
這篇文章主要介紹了Python爬蟲進(jìn)階之Beautiful Soup庫詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python爬蟲的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程
這篇文章主要介紹了Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Python設(shè)計(jì)模式之適配器模式原理與用法詳解
這篇文章主要介紹了Python設(shè)計(jì)模式之適配器模式原理與用法,結(jié)合實(shí)例形式分析了適配器模式的相關(guān)概念、原理及Python實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-01-01手把手教你利用Python創(chuàng)建一個(gè)游戲窗口
pygame是python用來寫游戲的擴(kuò)展包,用這個(gè)擴(kuò)展包,可以比較容易的構(gòu)造一個(gè)游戲窗口,這篇文章主要給大家介紹了關(guān)于如何利用Python創(chuàng)建一個(gè)游戲窗口的相關(guān)資料,需要的朋友可以參考下2022-07-07Python中axis=0與axis=1指的方向有什么不同詳解
對數(shù)據(jù)進(jìn)行操作時(shí),經(jīng)常需要在橫軸方向或者數(shù)軸方向?qū)?shù)據(jù)進(jìn)行操作,這時(shí)需要設(shè)定參數(shù)axis的值,下面這篇文章主要給大家介紹了關(guān)于Python中axis=0與axis=1指的方向有什么不同的相關(guān)資料,需要的朋友可以參考下2024-01-01