脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python数据分析之绘制m1-m2数据

Python数据分析之绘制m1-m2数据

2022-12-16 11:39斜月 Python

这篇文章主要介绍了Python数据分析之绘制m1-m2数据,文章基于python的相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言

前文讲述了ppi-cpi的图形绘制,在本文中继续分享另外一个与经济息息相关的货币数据指标M0-M1-M2,在这里还是采用爬虫的方式获取数据,然后通过matplotlib绘图工具将m0-m1-m2数据同框展示,最后通过颜色填充来表示其中的差额部分。对于新手来讲,会学习到python的基础知识、爬虫以及图形绘制的知识。

 

m0-m1-m2 数据获取

在获取数据之前,先讲述一下数据背后的含义:

  • 1 m0,即流通中的现金
  • 2 m1,即狭义货币,m1 = m0 + 活期存款
  • 3 m2,即广义货币,m2 = m1 + 居民储蓄存款+单位定期存款+单位其他存款+证券公司客户保证金

m1 是货币流动性和经济活跃的指标,m1 增加代表投资者信信心增强,经济的活跃度提高。 m1 增速大于 m2 意味着居民和企业的交易活跃,经济个体盈利能力强,景气度上升。 如果 m1 小于 m2 则经济景气度下降,盈利能力下降。

既然是数据获取,就需要找一个权威的网站获取数据,这里小编采用东方财富网的数据,这里直接给出页面的访问地址:

# 货币供应量数据访问地址
https://data.eastmoney.com/cjsj/hbgyl.html

货币供应量的数据来源如下图所示,这里只获取月份数据和同比增长即可,绝对值在这里就不去获取了。

Python数据分析之绘制m1-m2数据

既然知道了货币供应量数据的来源,怎么获取数据呢,是不是要复制页面进 excel 在进行解析,no,这样的话不符合程序员的气质。我想诸位页注意到了表格下方有分页,那么肯定是有通过 ajax 和后台进行通信的,通过观察可以发现如下接口,可以获取我们想要的数据:

# 货币供应量接口
https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=200&mkt=11
# 这里也同样贴了上一篇中 ppi 和 cpi 的接口,会发现都是一样的,只不过mkt的参数不一样
# ppi 数据和cpi 数据
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

至于数据的获取,还是使用原理的方式进行操作,使用python抓取数据,这里采用requests来获取数据:

body = requests.get(req_url).text
body = body.replace("(", "").replace(")", "")
data_list = body.split("","")

# 定义数据
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
  # 时间数据
  date_list.append(date)
  # 数据操作存储
  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-环比增速
  # 4-m1总量 5-m1同比增速 6-环比增速
  # 7-m0总量 8-m0同比增速 9-环比增速
  print(node)

最终获取到的数据如下图所示:

Python数据分析之绘制m1-m2数据

 

ppi-cpi 图形绘制

在绘制图形之前,需要先对数据进行处理:

  • 1 数据需要进行加工,提取需要展示的数据,日期和同比数据,数据的格式需要转换。
  • 2 在数据处理时,还是按照 m0 m1 m2 和时间的列表来获取数据。
  • 3 依旧使用 np.asarray 创建数据,进行图形绘制的准备工作。

按照以上的观点,数据处理的代码如下图所示:

Python数据分析之绘制m1-m2数据

对于图形的绘制,有以下几点:

  • 1 图形中需要展示 m1 和 m2 的数据情况,同时展示图例进行标识。
  • 2 能够体现出数据的差值区间和范围,差值部分进行颜色填充并予以区分。

最后,经过这些编码,得到了最终的货币供应量增速对比图形如下:

m0-m1-m2 货币增速对比图:

Python数据分析之绘制m1-m2数据

m1-m2 货币增速对比&差异图:

Python数据分析之绘制m1-m2数据

 

总结

在本文中,介绍了简单的python爬虫,并使用numpy进行了简单的数据处理,最终使用matplotlib进行图形绘制,实现了直观的方式展示货币供应量的增速图形。使用接口的方式获取数据可以随时获取数据更新重新绘制图形,省去了数据重新抓取的步骤。

到此这篇关于Python数据分析之绘制m1-m2数据的文章就介绍到这了,更多相关Python;m1-m2绘制内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7082787341508542500

延伸 · 阅读

精彩推荐