欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python數(shù)據(jù)分析之繪制ppi-cpi剪刀差圖形

 更新時間:2022年05月06日 10:12:32   作者:? 斜月?  ?  
這篇文章主要介紹了Python數(shù)據(jù)分析之繪制ppi-cpi剪刀差圖形,ppi-cp剪刀差是通過這個指標(biāo)可以了解當(dāng)前的經(jīng)濟(jì)運(yùn)行狀況,下文更多詳細(xì)內(nèi)容介紹需要的小伙伴可以參考一下

前言

ppi-cpi 剪刀差大家可能都聽說過,通過這個指標(biāo)可以了解當(dāng)前的經(jīng)濟(jì)運(yùn)行狀況,小編為了學(xué)習(xí) python 的圖形繪制,通過爬蟲的方式獲取到 ppi 和 cpi 的歷史數(shù)據(jù),然后通過 matplotlib 繪圖工具將 ppi 數(shù)據(jù)和 cpi 數(shù)據(jù)同框展示,最后通過顏色填充來表示其中的差額部分。對于新手來講,會學(xué)習(xí)到 python 的基礎(chǔ)知識、爬蟲以及圖形繪制的知識。

ppi 和 cpi 數(shù)據(jù)獲取

既然是數(shù)據(jù)獲取,就需要找一個權(quán)威的網(wǎng)站獲取 cpi 和 ppi 的數(shù)據(jù),這里小編采用東方財(cái)富網(wǎng)的數(shù)據(jù),這里直接給出頁面的訪問地址:

# cpi數(shù)據(jù)訪問地址
https://data.eastmoney.com/cjsj/cpi.html

cpi 的數(shù)據(jù)來源如下圖所示,這里只獲取月份數(shù)據(jù)和全國列中的同比增長即可。

ppi 數(shù)據(jù)如下所示,這里和 cpi 的數(shù)據(jù)獲取內(nèi)容類似,只獲取月份數(shù)據(jù)和當(dāng)月同比增長即可。

既然知道了數(shù)據(jù)來源,那么怎么獲取數(shù)據(jù)呢,一看到這個表格,是不是要復(fù)制頁面進(jìn) excel 在進(jìn)行解析,no,這樣的話不符合程序員的氣質(zhì),我注意到了表格下方有分頁,那么肯定是有通過 ajax 和后臺進(jìn)行通信的,通過觀察小編發(fā)現(xiàn)了這兩個接口,可以獲取我們想要的數(shù)據(jù):

# ppi 數(shù)據(jù)
https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=10&mkt=22
# cpi 數(shù)據(jù)
https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=10&mkt=19

aspx 后綴的接口看來還是 .net 呀,這里簡單分析一下,p=1&ps=10 分頁參數(shù)就不說了,大家都知道的,重要的是 mkt 參數(shù),表示了數(shù)據(jù)的分類。其他的參數(shù)也不需要關(guān)心含義,保留就好。

使用 python 抓取數(shù)據(jù),這里采用 requests 來獲取數(shù)據(jù):

def query_data_list(url):
    """
    獲取數(shù)據(jù)
    """
    # 去除 https 校驗(yàn)提醒信息 verify=False 忽略對證書的驗(yàn)證
    requests.packages.urllib3.disable_warnings()
    data = requests.get(url, verify=False).text
    # 通過瀏覽器控制臺查看數(shù)據(jù)返回的結(jié)構(gòu),進(jìn)行轉(zhuǎn)換后存入一個 list
    data = data.replace("([\"", "").replace("\"])", "")
    arr_list = data.split("\",\"")
    # 臨時打印結(jié)果
    print(arr_list)
    return arr_list

最終獲取到的數(shù)據(jù)如下圖所示:

ppi-cpi 圖形繪制

在繪制圖形之前,需要先對數(shù)據(jù)進(jìn)行處理:

  • 1 數(shù)據(jù)需要進(jìn)行加工,提取需要展示的數(shù)據(jù),日期和同比數(shù)據(jù),數(shù)據(jù)的格式需要轉(zhuǎn)換。
  • 2 cpi 和 ppi 從時間上來講長度不一致,需要既然要展示,就需要放在同一段時間內(nèi)進(jìn)行比較。
  • 3 cpi 和 ppi 數(shù)據(jù)已經(jīng)有 20 多年了,從實(shí)際需要的角度出發(fā),這里只展示 10 年的數(shù)據(jù)即可。

按照以上的觀點(diǎn),數(shù)據(jù)處理的代碼如下圖所示:

對于圖形的繪制,有以下幾點(diǎn):

  • 1 圖形中需要展示 cpi 和 ppi 的數(shù)據(jù)情況,同時展示圖例進(jìn)行標(biāo)識。
  • 2 設(shè)置縱向和橫向的數(shù)據(jù)參考線。
  • 3 能夠體現(xiàn)出數(shù)據(jù)的差值區(qū)間和范圍,差值部分進(jìn)行顏色填充并予以區(qū)分。 針對以上幾點(diǎn),繪制圖形的代碼如下圖所示:

其余諸如時間過濾以及接口配置和引入的類庫如下圖所示:

最后,經(jīng)過這些編碼,得到了最終的 cpi-ppi 的剪刀差圖形如下:

總結(jié)

文章介紹了簡單的 python 爬蟲,并使用 numpy 進(jìn)行了簡單的數(shù)據(jù)處理,最終使用 matplotlib 進(jìn)行圖形繪制,實(shí)現(xiàn)了直觀的方式展示 cpi-ppi 的剪刀差圖形。使用接口的方式獲取數(shù)據(jù)能夠隨時隨地的跟據(jù)數(shù)據(jù)的更新重新繪制圖形,省去了數(shù)據(jù)重新抓取的步驟。

到此這篇關(guān)于Python數(shù)據(jù)分析之繪制ppi-cpi剪刀差圖形的文章就介紹到這了,更多相關(guān)Python繪制ppi-cpi圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論