Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示
前言
前文講述了ppi-cpi和m0-m1-m2的圖形繪制,在本文中繼續(xù)分享一個反映經(jīng)濟活動景氣度的指標PMI
,在本文中還是采用爬蟲的方式獲取數(shù)據(jù),然后通過matplotlib
繪圖工具將PMI
逐年數(shù)據(jù)進行展示。對于新手來講,會學習到python
的基礎知識、爬蟲以及圖形繪制的知識。
PMI 數(shù)據(jù)獲取
在獲取數(shù)據(jù)之前,先講述一下PMI
(采購經(jīng)理人指數(shù)) 數(shù)據(jù)背后的含義: 大家都知道,制造業(yè)是一個國家的立國之本,那么PMI
就是衡量一個國家制造業(yè)發(fā)展運行情況的指標,通常情況下,比 50% 為分界線來經(jīng)濟強弱的分水嶺,大于 50% 則代表制造業(yè)處于擴張,處理 40-50 則代表衰退,40 以下就是蕭條了。
既然是數(shù)據(jù)獲取,就需要找一個權威的網(wǎng)站獲取數(shù)據(jù),這里小編采用東方財富網(wǎng)的數(shù)據(jù),這里直接給出頁面的訪問地址:
# 貨幣供應量數(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ù)呢,是不是要復制頁面進 excel 在進行解析,如果這樣的做話,費時費力。我想諸位頁注意到了表格下方有分頁,那么肯定是有通過 ajax 和后臺進行通信的,通過觀察可以發(fā)現(xiàn)如下接口,數(shù)據(jù)交互的結果如下圖所示:
#采購經(jīng)理人指數(shù) https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=200&mkt=21 # 這里也同樣貼了前文中貨幣供應量接口、 ppi 和 cpi 的接口,會發(fā)現(xiàn)都是一樣的,只不過mkt的參數(shù)不一樣 # 貨幣供應量接口 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ù)的獲取,還是使用原理的方式進行操作,使用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ù)據(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ù)進行處理:
- 1 數(shù)據(jù)需要進行加工,提取需要展示的數(shù)據(jù),而后數(shù)據(jù)的格式需要轉換。
- 2 在數(shù)據(jù)處理時,還是按照制造業(yè)和非制造業(yè)、時間的列表來獲取數(shù)據(jù)。
- 3 依舊使用 np.asarray 創(chuàng)建數(shù)據(jù),進行圖形繪制的準備工作。
按照以上的觀點,數(shù)據(jù)處理的代碼如下圖所示:
對于圖形的繪制,有以下幾點:
- 1 圖形中需要展示制造業(yè)和非制造業(yè)的數(shù)據(jù)情況,同時展示圖例進行標識。
- 2 設置指標為 50 和 40 水平線,用于設置標準對比線型。
最后,經(jīng)過這些編碼,得到最終的制造業(yè)和非制造業(yè)指數(shù)對比圖形如下:
總結
文章介紹了簡單的python
爬蟲,并使用numpy
進行了簡單的數(shù)據(jù)處理,最終使用matplotlib
進行圖形繪制,實現(xiàn)了直觀的方式展示制造業(yè)和非制造業(yè)指數(shù)圖形。使用接口的方式獲取數(shù)據(jù)可以隨時獲取數(shù)據(jù)更新重新繪制圖形,省去了數(shù)據(jù)重新抓取的步驟。
到此這篇關于Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示的文章就介紹到這了,更多相關Python PMI 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
windows系統(tǒng)Tensorflow2.x簡單安裝記錄(圖文)
這篇文章主要介紹了windows系統(tǒng)Tensorflow2.x簡單安裝記錄(圖文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01Pandas常用累計、同比、環(huán)比等統(tǒng)計方法實踐過程
這篇文章主要介紹了Pandas常用累計、同比、環(huán)比等統(tǒng)計方法實踐過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Python中axis=0與axis=1指的方向有什么不同詳解
對數(shù)據(jù)進行操作時,經(jīng)常需要在橫軸方向或者數(shù)軸方向對數(shù)據(jù)進行操作,這時需要設定參數(shù)axis的值,下面這篇文章主要給大家介紹了關于Python中axis=0與axis=1指的方向有什么不同的相關資料,需要的朋友可以參考下2024-01-01