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 的数据来源如下图所示,这里只获取月份数据和全国列中的同比增长即可。
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
最终获取到的数据如下图所示:
ppi-cpi 图形绘制
在绘制图形之前,需要先对数据进行处理:
1 数据需要进行加工,提取需要展示的数据,日期和同比数据,数据的格式需要转换。
2 cpi 和 ppi 从时间上来讲长度不一致,需要既然要展示,就需要放在同一段时间内进行比较。
3 cpi 和 ppi 数据已经有 20 多年了,从实际需要的角度出发,这里只展示 10 年的数据即可。
按照以上的观点,数据处理的代码如下图所示:
对于图形的绘制,有以下几点:
1 图形中需要展示 cpi 和 ppi 的数据情况,同时展示图例进行标识。
2 设置纵向和横向的数据参考线。
3 能够体现出数据的差值区间和范围,差值部分进行颜色填充并予以区分。 针对以上几点,绘制图形的代码如下图所示:
其余诸如时间过滤以及接口配置和引入的类库如下图所示:
最后,经过这些编码,得到了最终的 cpi-ppi 的剪刀差图形如下:
来源:https://juejin.cn/post/7081819665206345742


猜你喜欢
- 本文分享了php结合ajax实现无刷新上传图片的实例代码,分享给大家,希望大家可以和小编一起学习学习,共同进步。1.引入文件<!--图
- 简介对与控件QPushButton中的可以使用setStyleSheet设置它背景图片。具体设置背景图片的方法有两种self.button.
- 核心代码:#!/usr/bin/python#-*- coding:gbk -*-#设置源文件输出格式import sysimport ge
- 箱线图箱线图一般用来展现数据的分布,如上下四分位值、中位数等,也可以直观地展示异常点。Matplotlib提供了boxplot()函数绘制箱
- 安装docker桌面程序从docker官网下载并安装桌面程序。安装好后启动桌面程序。若出现以下错误,说明你的docker 没有启动。1. d
- 一、map 1.基本介绍map 是 key-value 数据结构,又称为字段或者关联数组。类似其它编程语言的集合, 在编程中是经常
- 设法让用户happy吧~只要你的设计让用户乐了,产品的个性就得到了一次彰显,而用户对网站的情感就会获得一次升华,看看下面的知名网站的人性化设
- 对于opencv 它提供了许多已经练习好的模型可供使用,我们需要通过他们来进行人脸识别参考了网上许多资料 假设你已经配好了开发环境
- 导入相关的包import pygame, sys, randomfrom pygame.locals import *设置屏幕大小以及基本参
- PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Proje
- 准备写一个操作Excel脚本却在导入包的时候出现了一个小问题导入包from Tkinter import Tkfrom time impor
- 错误号 错误信息5 &n
- 向量空间模型VSM:VSM的介绍:一个文档可以由文档中的一系列关键词组成,而VSM则是用这些关键词的向量组成一篇文档,其中的每个分量代表词项
- 用python读取excel表中的数据假如说有如下一张存储了数据的excel表,其中x1-x6是特征,y_label是特征对应的类别标签。我
- 题目要求1.后台管理员只有一个用户:admin, 密码: admin2.当管理员登陆成功后,可以管理前台会员信息。3.会员信息管
- 本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法。分享给大家供大家参考。具体如下:定义一个一维数组一个二维数组如下$fr
- 效果图守卫类游戏大家应该玩过吧,什么植物大战僵尸呀,保卫萝卜呀,今天我们自己用python来写一个自己的守护类小游戏兔子猎人守护城堡,让大家
- 你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习:第一种可能是你还没有理解CSS处理页面的原理。在你考虑
- Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4
- 零、前言python代码中配置文件是必不可少的内容。常见的配置文件格式有很多中:ini、yaml、xml、properties、txt、py