Python数据分析之绘制ppi-cpi剪刀差图形

作者:? 时间:2023-01-10 09:57:03 

前言

ppi-cpi 剪刀差大家可能都听说过,通过这个指标可以了解当前的经济运行状况,小编为了学习 python 的图形绘制,通过爬虫的方式获取到 ppi 和 cpi 的历史数据,然后通过 matplotlib 绘图工具将 ppi 数据和 cpi 数据同框展示,最后通过颜色填充来表示其中的差额部分。对于新手来讲,会学习到 python 的基础知识、爬虫以及图形绘制的知识。

ppi 和 cpi 数据获取

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

# cpi数据访问地址
https://data.eastmoney.com/cjsj/cpi.html

cpi 的数据来源如下图所示,这里只获取月份数据和全国列中的同比增长即可。

Python数据分析之绘制ppi-cpi剪刀差图形

ppi 数据如下所示,这里和 cpi 的数据获取内容类似,只获取月份数据和当月同比增长即可。

Python数据分析之绘制ppi-cpi剪刀差图形

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

# ppi 数据
https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=10&mkt=22
# cpi 数据
https://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=GJZB&sty=ZGZB&p=1&ps=10&mkt=19

aspx 后缀的接口看来还是 .net 呀,这里简单分析一下,p=1&ps=10 分页参数就不说了,大家都知道的,重要的是 mkt 参数,表示了数据的分类。其他的参数也不需要关心含义,保留就好。

使用 python 抓取数据,这里采用 requests 来获取数据:

def query_data_list(url):
   """
   获取数据
   """
   # 去除 https 校验提醒信息 verify=False 忽略对证书的验证
   requests.packages.urllib3.disable_warnings()
   data = requests.get(url, verify=False).text
   # 通过浏览器控制台查看数据返回的结构,进行转换后存入一个 list
   data = data.replace("([\"", "").replace("\"])", "")
   arr_list = data.split("\",\"")
   # 临时打印结果
   print(arr_list)
   return arr_list

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

Python数据分析之绘制ppi-cpi剪刀差图形

ppi-cpi 图形绘制

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

  • 1 数据需要进行加工,提取需要展示的数据,日期和同比数据,数据的格式需要转换。

  • 2 cpi 和 ppi 从时间上来讲长度不一致,需要既然要展示,就需要放在同一段时间内进行比较。

  • 3 cpi 和 ppi 数据已经有 20 多年了,从实际需要的角度出发,这里只展示 10 年的数据即可。

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

Python数据分析之绘制ppi-cpi剪刀差图形

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

  • 1 图形中需要展示 cpi 和 ppi 的数据情况,同时展示图例进行标识。

  • 2 设置纵向和横向的数据参考线。

  • 3 能够体现出数据的差值区间和范围,差值部分进行颜色填充并予以区分。 针对以上几点,绘制图形的代码如下图所示:

Python数据分析之绘制ppi-cpi剪刀差图形

其余诸如时间过滤以及接口配置和引入的类库如下图所示:

Python数据分析之绘制ppi-cpi剪刀差图形

最后,经过这些编码,得到了最终的 cpi-ppi 的剪刀差图形如下:

Python数据分析之绘制ppi-cpi剪刀差图形

来源:https://juejin.cn/post/7081819665206345742

标签:Python,数据,分析,绘制,ppi-cpi
0
投稿

猜你喜欢

  • 详解python之配置日志的几种方式

    2022-11-02 14:32:30
  • PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】

    2023-09-08 11:36:58
  • JavaScript 创建随机数和随机图片

    2024-05-02 16:16:02
  • OpenCV学习方框滤波实现图像处理代码示例

    2023-02-08 17:17:43
  • Python入门学习指南分享

    2023-09-02 15:02:21
  • Python 实现将某一列设置为str类型

    2022-07-27 03:20:12
  • 详解Vue-cli webpack移动端自动化构建rem问题

    2024-04-29 13:40:06
  • Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】

    2021-06-06 02:32:57
  • 深入了解Vue3中props的原理与使用

    2024-05-09 15:09:17
  • python 简单的多线程链接实现代码

    2021-09-24 02:10:02
  • JS添加或删除HTML dom元素的方法实例分析

    2024-04-29 13:24:59
  • pycharm运行scrapy过程图解

    2022-07-19 19:30:20
  • 使用vue.js写一个tab选项卡效果

    2024-04-22 22:23:34
  • Python实现照片卡通化

    2021-03-29 18:45:40
  • 解决使用pip安装报错:Microsoft Visual C++ 14.0 is required.

    2022-05-02 14:42:15
  • 解密Python中的描述符(descriptor)

    2023-12-05 08:28:48
  • 使用python连接mysql数据库之pymysql模块的使用

    2024-01-16 13:12:11
  • 音视频基本概念和FFmpeg的简单入门教程详解

    2023-03-24 22:27:23
  • django mysql数据库及图片上传接口详解

    2024-01-15 01:45:50
  • Python正则表达式中flags参数的实例详解

    2021-09-23 10:43:41
  • asp之家 网络编程 m.aspxhome.com