Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示
前言
前文講述了ppi-cpi和m0-m1-m2的圖形繪制,在本文中繼續(xù)分享一個(gè)反映經(jīng)濟(jì)活動(dòng)景氣度的指標(biāo)PMI
,在本文中還是采用爬蟲的方式獲取數(shù)據(jù),然后通過(guò)matplotlib
繪圖工具將PMI
逐年數(shù)據(jù)進(jìn)行展示。對(duì)于新手來(lái)講,會(huì)學(xué)習(xí)到python
的基礎(chǔ)知識(shí)、爬蟲以及圖形繪制的知識(shí)。
PMI 數(shù)據(jù)獲取
在獲取數(shù)據(jù)之前,先講述一下PMI
(采購(gòu)經(jīng)理人指數(shù)) 數(shù)據(jù)背后的含義: 大家都知道,制造業(yè)是一個(gè)國(guó)家的立國(guó)之本,那么PMI
就是衡量一個(gè)國(guó)家制造業(yè)發(fā)展運(yùn)行情況的指標(biāo),通常情況下,比 50% 為分界線來(lái)經(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è)面的訪問(wèn)地址:
# 貨幣供應(yīng)量數(shù)據(jù)訪問(wèn)地址 https://data.eastmoney.com/cjsj/pmi.html
采購(gòu)經(jīng)理人指數(shù)的數(shù)據(jù)來(lái)源如下圖所示,這里只獲取制造業(yè)和非制造業(yè)的指數(shù)數(shù)據(jù)即可,同比增長(zhǎng)數(shù)據(jù)就不去獲取了。
既然知道了采購(gòu)經(jīng)理人指數(shù)的來(lái)源,怎么獲取數(shù)據(jù)呢,是不是要復(fù)制頁(yè)面進(jìn) excel 在進(jìn)行解析,如果這樣的做話,費(fèi)時(shí)費(fèi)力。我想諸位頁(yè)注意到了表格下方有分頁(yè),那么肯定是有通過(guò) ajax 和后臺(tái)進(jìn)行通信的,通過(guò)觀察可以發(fā)現(xiàn)如下接口,數(shù)據(jù)交互的結(jié)果如下圖所示:
#采購(gòu)經(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 的接口,會(huì)發(fā)現(xiàn)都是一樣的,只不過(guò)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
來(lái)獲取數(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ù)操作存儲(chǔ) pmi1_list.append(float(arr_list[1])) pmi2_list.append(float(arr_list[3])) print(node)
最終獲取到的數(shù)據(jù)如下圖所示:
pmi 圖形繪制
在繪制圖形之前,需要先對(duì)數(shù)據(jù)進(jìn)行處理:
- 1 數(shù)據(jù)需要進(jìn)行加工,提取需要展示的數(shù)據(jù),而后數(shù)據(jù)的格式需要轉(zhuǎn)換。
- 2 在數(shù)據(jù)處理時(shí),還是按照制造業(yè)和非制造業(yè)、時(shí)間的列表來(lái)獲取數(shù)據(jù)。
- 3 依舊使用 np.asarray 創(chuàng)建數(shù)據(jù),進(jìn)行圖形繪制的準(zhǔn)備工作。
按照以上的觀點(diǎn),數(shù)據(jù)處理的代碼如下圖所示:
對(duì)于圖形的繪制,有以下幾點(diǎn):
- 1 圖形中需要展示制造業(yè)和非制造業(yè)的數(shù)據(jù)情況,同時(shí)展示圖例進(jìn)行標(biāo)識(shí)。
- 2 設(shè)置指標(biāo)為 50 和 40 水平線,用于設(shè)置標(biāo)準(zhǔn)對(duì)比線型。
最后,經(jīng)過(guò)這些編碼,得到最終的制造業(yè)和非制造業(yè)指數(shù)對(duì)比圖形如下:
總結(jié)
文章介紹了簡(jiǎn)單的python
爬蟲,并使用numpy
進(jìn)行了簡(jiǎ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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python線程池的實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了python線程池的實(shí)現(xiàn)方法,代碼簡(jiǎn)單實(shí)用,供大家參考使用2013-11-11windows系統(tǒng)Tensorflow2.x簡(jiǎn)單安裝記錄(圖文)
這篇文章主要介紹了windows系統(tǒng)Tensorflow2.x簡(jiǎn)單安裝記錄(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python爬蟲進(jìn)階之Beautiful Soup庫(kù)詳解
這篇文章主要介紹了Python爬蟲進(jìn)階之Beautiful Soup庫(kù)詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過(guò)程
這篇文章主要介紹了Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(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用來(lái)寫游戲的擴(kuò)展包,用這個(gè)擴(kuò)展包,可以比較容易的構(gòu)造一個(gè)游戲窗口,這篇文章主要給大家介紹了關(guān)于如何利用Python創(chuàng)建一個(gè)游戲窗口的相關(guān)資料,需要的朋友可以參考下2022-07-07Python樹(shù)的平衡檢測(cè)算法實(shí)現(xiàn)
樹(shù)的平衡檢測(cè)是指判斷一棵樹(shù)是否為平衡二叉樹(shù),即每個(gè)節(jié)點(diǎn)的左右子樹(shù)高度差不超過(guò)1,本文主要介紹了Python樹(shù)的平衡檢測(cè)算法實(shí)現(xiàn),感興趣的可以了解一下2023-11-11Python中axis=0與axis=1指的方向有什么不同詳解
對(duì)數(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