Python數(shù)據(jù)分析之繪制m1-m2數(shù)據(jù)
前言
前文講述了ppi-cpi的圖形繪制,在本文中繼續(xù)分享另外一個與經(jīng)濟(jì)息息相關(guān)的貨幣數(shù)據(jù)指標(biāo)M0-M1-M2
,在這里還是采用爬蟲的方式獲取數(shù)據(jù),然后通過matplotlib
;繪圖工具將nbspm0-m1-m2
;數(shù)據(jù)同框展示,最后通過顏色填充來表示其中的差額部分。對于新手來講,會學(xué)習(xí)到;python
的基礎(chǔ)知識、爬蟲以及圖形繪制的知識。
m0-m1-m2 數(shù)據(jù)獲取
在獲取數(shù)據(jù)之前,先講述一下數(shù)據(jù)背后的含義:
- 1 m0,即流通中的現(xiàn)金
- 2 m1,即狹義貨幣,m1 = m0 + 活期存款
- 3 m2,即廣義貨幣,m2 = m1 + 居民儲蓄存款+單位定期存款+單位其他存款+證券公司客戶保證金
m1 是貨幣流動性和經(jīng)濟(jì)活躍的指標(biāo),m1 增加代表投資者信信心增強(qiáng),經(jīng)濟(jì)的活躍度提高。 m1 增速大于 m2 意味著居民和企業(yè)的交易活躍,經(jīng)濟(jì)個體盈利能力強(qiáng),景氣度上升。 如果 m1 小于 m2 則經(jīng)濟(jì)景氣度下降,盈利能力下降。
既然是數(shù)據(jù)獲取,就需要找一個權(quán)威的網(wǎng)站獲取數(shù)據(jù),這里小編采用東方財富網(wǎng)的數(shù)據(jù),這里直接給出頁面的訪問地址:
# 貨幣供應(yīng)量數(shù)據(jù)訪問地址 https://data.eastmoney.com/cjsj/hbgyl.html
貨幣供應(yīng)量的數(shù)據(jù)來源如下圖所示,這里只獲取月份數(shù)據(jù)和同比增長即可,絕對值在這里就不去獲取了。
既然知道了貨幣供應(yīng)量數(shù)據(jù)的來源,怎么獲取數(shù)據(jù)呢,是不是要復(fù)制頁面進(jìn) excel 在進(jìn)行解析,no,這樣的話不符合程序員的氣質(zhì)。我想諸位頁注意到了表格下方有分頁,那么肯定是有通過 ajax 和后臺進(jìn)行通信的,通過觀察可以發(fā)現(xiàn)如下接口,可以獲取我們想要的數(shù)據(jù):
# 貨幣供應(yīng)量接口 https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=200&mkt=11 # 這里也同樣貼了上一篇中 ppi 和 cpi 的接口,會發(fā)現(xiàn)都是一樣的,只不過mkt的參數(shù)不一樣 # 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, m0_list, m1_list, m2_list = [], [], [], [] for node in data_list: node = node.replace("]", "").replace("[", "").replace("\"", "") arr_list = node.split(",") date = arr_list[0] if date < "2011-01-01": continue # 時間數(shù)據(jù) date_list.append(date) # 數(shù)據(jù)操作存儲 m2_list.append(float(arr_list[2])) m1_list.append(float(arr_list[5])) m0_list.append(float(arr_list[8])) # 0 時間 # 1-m2總量 2-m2同比增速 3-環(huán)比增速 # 4-m1總量 5-m1同比增速 6-環(huán)比增速 # 7-m0總量 8-m0同比增速 9-環(huán)比增速 print(node)
最終獲取到的數(shù)據(jù)如下圖所示:
ppi-cpi 圖形繪制
在繪制圖形之前,需要先對數(shù)據(jù)進(jìn)行處理:
- 1 數(shù)據(jù)需要進(jìn)行加工,提取需要展示的數(shù)據(jù),日期和同比數(shù)據(jù),數(shù)據(jù)的格式需要轉(zhuǎn)換。
- 2 在數(shù)據(jù)處理時,還是按照 m0 m1 m2 和時間的列表來獲取數(shù)據(jù)。
- 3 依舊使用 np.asarray 創(chuàng)建數(shù)據(jù),進(jìn)行圖形繪制的準(zhǔn)備工作。
按照以上的觀點(diǎn),數(shù)據(jù)處理的代碼如下圖所示:
對于圖形的繪制,有以下幾點(diǎn):
- 1 圖形中需要展示 m1 和 m2 的數(shù)據(jù)情況,同時展示圖例進(jìn)行標(biāo)識。
- 2 能夠體現(xiàn)出數(shù)據(jù)的差值區(qū)間和范圍,差值部分進(jìn)行顏色填充并予以區(qū)分。
最后,經(jīng)過這些編碼,得到了最終的貨幣供應(yīng)量增速對比圖形如下:
m0-m1-m2 貨幣增速對比圖:
m1-m2 貨幣增速對比&差異圖:
總結(jié)
在本文中,介紹了簡單的;python
;爬蟲,并使用;numpy
;進(jìn)行了簡單的數(shù)據(jù)處理,最終使用;matplotlib
;進(jìn)行圖形繪制,實(shí)現(xiàn)了直觀的方式展示貨幣供應(yīng)量的增速圖形。使用接口的方式獲取數(shù)據(jù)可以隨時獲取數(shù)據(jù)更新重新繪制圖形,省去了數(shù)據(jù)重新抓取的步驟。
到此這篇關(guān)于Python數(shù)據(jù)分析之繪制m1-m2數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python;m1-m2繪制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中字典的基礎(chǔ)介紹及常用操作總結(jié)
字典也是python的數(shù)據(jù)類型中的一種,它由許多鍵值對組成,它是一種可變?nèi)萜髂P?一般情況下鍵是唯一的,字典支持嵌套,下面這篇文章主要給大家介紹了關(guān)于Python中字典的基礎(chǔ)介紹及常用操作,需要的朋友可以參考下2021-09-09分析Python的Django框架的運(yùn)行方式及處理流程
這篇文章主要介紹了分析Python的Django框架的運(yùn)行方式及處理流程,本文對于Django框架的機(jī)制總結(jié)得非常之直觀精煉,極力推薦!需要的朋友可以參考下2015-04-04基于Django的樂觀鎖與悲觀鎖解決訂單并發(fā)問題詳解
這篇文章主要介紹了基于Django的樂觀鎖與悲觀鎖解決訂單并發(fā)問題詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07Python基礎(chǔ)之教你怎么在M1系統(tǒng)上使用pandas
這篇文章主要介紹了Python基礎(chǔ)之教你怎么在M1系統(tǒng)上使用pandas,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05使用 pytorch 創(chuàng)建神經(jīng)網(wǎng)絡(luò)擬合sin函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了使用 pytorch 創(chuàng)建神經(jīng)網(wǎng)絡(luò)擬合sin函數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02