pyecharts各省人口GDP可视化分析
版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82503569
9月9日更:本篇博客数据下载:链接:https://pan.baidu.com/s/1G2_oP6ElxAPh-S2miqE6cw 密码:7bjg
- 写在前面
  上次在中国大学MOOC课程信息之数据分析可视化二中,第一次使用了百度开源的pyecharts。真心说,pyecharts真的好用。因此,我又迫不及待地探索其他有趣的绘图方法。 
  本篇博客所涉及的数据均来源于国家统计局。pyecharts使用参考:pyecharts官网
  PS:作为一个地图控和数据爱好者,我接下来会不定期更新此博客,感谢大家浏览。
- 环境配置安装
运行环境:Python3.6、Spyder
依赖的模块:numpy,pandas,re,pyecharts以及一些地图模块
- 开始工作
1. 获取数据
在国家统计局官网上点击数据查询。(需要注册登录!)

在地区数据中的分省年度数据中点击左边的指标,如人口,综合,再设置时间(我取的是最近20年)。

此次我下载的是各省近20年的GDP以及各省近20年的人口(格式csv)。(时间跨度从1997年到2016年)。如果需要数据的,请留言或私戳。
用MS Excel打开下载的csv表格,发现有很多说明文字,如:


因此,这里我们需手动删除掉这些说明文字。
2. 数据读取
gdp_path='D://python_data//provinces_gdp.csv'  #各省GDP文件路径
pop_path='D://python_data//provinces_population.csv'  #各省人口文件路径
gdp_data = pd.read_csv(gdp_path)  #pandas读入csv表格
pop_data = pd.read_csv(pop_path)
运行之后,发现报错:
gdp_data = pd.read_csv(gdp_path,encoding='GB2312')  #pandas读入csv表格
pop_data = pd.read_csv(pop_path,encoding='GB2312')
好了,数据读取成功。现在开始绘图啦!
3. 绘制2016年各省GDP人口条形图
由于读入的数据为pandas格式,而pyecharts默认为list格式。因此这里需要进行转换(PS:很久之前学的pandas了,好多知识点都忘了,笑哭)。虽然官网上也有相应例子,但发现并不怎么好用。网上搜了一些方法,这篇博客用pandas中的DataFrame时选取行或列写的不错,可以借鉴。
'''2016年各省GDP人口条形图'''
attr=gdp_data['地区'].values.tolist()  #省份名
v1=gdp_data['2016年'].values.tolist() #2016年各省GDP
v2=pop_data['2016年'].values.tolist() #2016年各省人口
bar = Bar("2016年各省GDP人口条形图",title_color="#fff", title_pos="auto",
      width=1200, height=600,background_color="#404a59")
bar.add("GDP/亿元", attr, v1)
bar.add("人口/万", attr, v2, is_label_show=True,is_datazoom_show=True,
        xaxis_label_textsize=10,xaxis_rotate=30)
bar.render("2016年各省GDP人口条形图.html")
说明:各省GDP的数据先取某一列,如2016年的,得到新的Dataframe,再取value值,得到numpy格式的数据,最后将其转换为list格式。

下方可滑动,可以看到不同的省份的GDP和人口(红色为GDP/万亿元,蓝色为人口/万,)。
4. 绘制指定省历年GDP与人口变化曲线
我这里选的省份是四川(家乡啦),你也可以选择你的家乡或者感兴趣的。
province='四川省'
attr=gdp_data.columns.tolist()[-1:0:-1]  #年份
v1=gdp_data[gdp_data['地区']==province].values.tolist()[0][-1:0:-1]  #历年GDP数据
v2=pop_data[pop_data['地区']==province].values.tolist()[0][-1:0:-1]  #历年人口数据
line = Line(province+"历年GDP与人口变化曲线",title_color="#404a59", title_pos="auto",
    width=1200, height=600)
line.add("GDP/亿元", attr, v1, is_stack=True, is_label_show=True)
line.add("人口/万", attr, v2, is_stack=True, is_label_show=True)
line.render(province+"历年GDP与人口变化曲线.html")
需要指出的是获取历年数据时依照前面方法得到的是二维数组、第一个值不是数据且数据是从2016年到1997年的。因此这里取第一维,去掉第一个值,倒序输出。

红色为GDP,蓝色为人口,其中人口在前两个为空。可以看出,四川省近20年GDP比人口增长得更快,人民的生活越来越好啦,开心。
5. 绘制2016年全国各省人均GDP地图
看看2016年哪个地方最发达,人民最富。
'''2016年全国各省人均GDP地图'''
attr=gdp_data['地区'].values.tolist()  #省份名
attr=[re.sub('[自治区市省回族维吾尔壮族]', '', i) for i in attr]
v1=gdp_data['2016年'].values #2016年各省GDP
v2=pop_data['2016年'].values #2016年各省人口
value=np.round(v1/v2,decimals=2).tolist()   #2016年各省人均GDP,保留两位小数
map = Map("2016年全国各省人均GDP地图",title_color="#404a59", title_pos="auto",
    width=1200, height=600)
map.add("人均/万元",attr,value,visual_range=[0, 12],maptype="china",is_visualmap=True,
    visual_text_color="#000"
)
map.render("2016年全国各省人均GDP地图.html")
  需要说明的是,由于pyecharts默认的省级行政区不带有“市”,“省”,“自治区”,民族字样,这里需要先将省名预处理,用re去掉多余字符。
  另外,在求人均GDP时,发现Numpy数组相除相对简单。为了数据看着更简洁,这里保留两位小数。

再看看人均上6万的。

哎,只有沿海地区外加内蒙古和帝都了。看来西部大开发国家还得继续鼎力支持啊。
6. 绘制近20年全国各省GDP增长率地图
上边的图有点来气,我们西部好不发达呀。别生气,我们应该换种角度看待问题,那么从近20年的发展来看,情况是怎样的呢?
'''近20年全国各省GDP增长率地图'''
_attr=gdp_data['地区'].values.tolist()  #省份名
attr=[re.sub('[自治区市省回族维吾尔壮族]', '', i) for i in _attr]
value=[]
for i in _attr:
    gdp=gdp_data[gdp_data['地区']==i].values.tolist()[0][-1:0:-1]  #历年GDP数据
    rate=round(gdp[-1]/gdp[0],2)
    value.append(rate)
map = Map("近20年全国各省GDP增长率地图",title_color="#404a59", title_pos="auto",
          width=1200, height=600)
map.add("增长率/倍",attr,value,visual_range=[0, 16],maptype="china",is_visualmap=True,
    visual_text_color="#000"
)
map.render("近20年全国各省GDP增长率地图.html")
情况是这样的:

我国大多省份在近20年都实现了快速发展(东北发展相对有点缓慢)。

而看增长大于12倍的省份,好多都是中西部的。看来中西部地区发展速度的比东部沿海地区更快呀。
- 结语
持续更新中。另外,有需要的话,数据和生成的html网页我会打包放在云盘上共享出来。
pyecharts各省人口GDP可视化分析的更多相关文章
- 【Python可视化】使用Pyecharts进行奥运会可视化分析~
		项目全部代码 & 数据集都可以访问我的KLab --[Pyecharts]奥运会数据集可视化分析-获取,点击Fork即可- 受疫情影响,2020东京奥运会将延期至2021年举行: 虽然延期,但 ... 
- pyecharts实现星巴克门店分布可视化分析
		项目介绍 使用pyecharts对星巴克门店分布进行可视化分析: 全球门店分布/拥有星巴克门店最多的10个国家或地区: 拥有星巴克门店最多的10个城市: 门店所有权占比: 中国地区门店分布热点图. 数 ... 
- 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析
		作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ... 
- 抓取摩拜单车API数据,并做可视化分析
		抓取摩拜单车API数据,并做可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ... 
- JAVA 可视化分析工具  第12节
		JAVA 可视化分析工具 第12节 经过前几章对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!那么这章我们就根据已有的理论知识,通过可视化工具来实践一番. 我们今天要讲 ... 
- 可视化分析工具Cytoscape使用记录
		最近项目要使用到可视化分析工具Cytoscape,所以会花费很多的时间跟精力来整理Cytoscape软件使用和开发的相关资料,希望写下的文章能减少有兴趣的同行学习跟开发所走的弯路时间.同时也是因为百度 ... 
- python3 对拉勾数据进行可视化分析
		上回说到我们如何如何把拉勾的数据抓取下来的,既然获取了数据,就别放着不动,把它拿出来分析一下,看看这些数据里面都包含了什么信息.(本次博客源码地址:https://github.com/MaxLyu/ ... 
- OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践
		文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 概览 Grafana 是一个开源的监控数据分析和可视化套件.最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用 ... 
- 基于Qt的A*算法可视化分析
		代码地址如下:http://www.demodashi.com/demo/13677.html 需求 之前做过一个无人车需要自主寻找最佳路径,所以研究了相关的寻路算法,最终选择A算法,因为其简单易懂, ... 
随机推荐
- Zabbix设置触发器调用远程主机脚本实现触发告警后自动启动自愈功能
			参考:https://www.cnblogs.com/xiami-xm/p/8929163.html 当zabbix添加触发器后触发告警后可以设置发送邮件及短信告警,但是恢复故障需要运维人员收到告警以 ... 
- lvs整理
			LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统.通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能.高可用的服务器群集,它具有良 ... 
- Flutter FutureBuilder异步请求列表示例
			Flutter的FutureBuilder列表示例 import 'package:flutter/material.dart'; import '../service/service_method. ... 
- 【OpenGL学习】 四种绘制直线的算法
			我是用MFC框架进行测试的,由于本人也没有专门系统学习MFC框架,代码若有不足之处,请指出. 一,先来一个最简单的DDA算法 DDA算法全称为数值微分法,基于微分方程来绘制直线. ①推导微分方程如下: ... 
- 《Hadoop》大数据技术开发实战学习笔记(二)
			搭建Hadoop 2.x分布式集群 1.Hadoop集群角色分配 2.上传Hadoop并解压 在centos01中,将安装文件上传到/opt/softwares/目录,然后解压安装文件到/opt/mo ... 
- 【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
			wpa_supplicant是一个跨平台的无线安全管理软件,这里需要用它来对无线网络进行配置,wpa_supplicant相关工具已经移植好,包含在我们提供的文件系统中. 配置无线网络 wpa_sup ... 
- Object Detection in 20 Years: A Survey【持续更新中】
			原文:https://www.cnblogs.com/zhaojunjie/p/10886099.html 论文链接:https://arxiv.org/pdf/1905.05055.pdf 1. 引 ... 
- 无服务架构在IOT的应用场景——使用函数工作流处理DIS数据
			在物联网领域,复杂性往往并非在于传感器,真正的复杂性在于各种传感器产生的大量数据,以及对这些数据的处理,所以开发者不得不花费大量的时间去构建和维护后端服务器来处理这样一个庞大的数据流.而在今天这个敏捷 ... 
- ActiveMQ Queue示例
			一.Queue 发送 public class JmsSend { public static void main(String[] args) throws JMSException { Conne ... 
- 最全APP安装/卸载/更新测试点
			1.安装查看在安装过程中存在的提示信息是否明确,意思是否明确在安装过程中,点击取消按钮,能否正常退出安装程序,软件是否可用.安装时是否识别有SD卡,并默认安装到sd卡中安装过程中,接听电话或者短信,安 ... 
