公众号后台回复“图书“,了解更多号主新书内容
作者:zch
来源:菜J学Python

专栏作者:zch,经管专业研一在读,Python数据分析及可视化爱好者。

有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较。但直方图在视觉上并不能很好突出地区间的差异,因此考虑地理可视化,通过地图上位置(地理位置)和颜色(颜色深浅代表数值差异)两个元素加以体现。在本文案例中,基于第三方库pyecharts,对中国各省2010-2019年的GDP进行绘制。

我们先来看看最终效果:

01

关于绘图数据

基于时间和截面两个维度,可把数据分为截面数据、时间序列及面板数据。在本文案例中,某一年各省的GDP属于截面数据,多年各省的GDP属于面板数据。因此,按照先易后难的原则,先对某一年各省的GDP进行地理可视化,再进一步构建for循环对多年各省的GDP进行可视化,形成最终的时间轮播图。

数据来源:本文案例使用的GDP数据来源于国家统计局官网,可在线下载到本地,保存为csv或excel格式,用pandas中的DataFrame进行读取。

02

地理可视化

一、全国各省单年GDP的可视化

在pyecharts中可使用Map类型实现地理可视化,其原理是通过不同颜色填充以展现不同的数据,options实现图表的调整及修饰。代码展示如下:

import pandas as pd
from pyecharts.charts import Map
import pyecharts.options as optsframe = pd.read_csv('C:\\Users\\dell\\Desktop\\分省年度数据2.csv',encoding='GBK')
map = Map()
map.add("我国地区的GDP",frame[['地区','2019年']].values.tolist(),"china")
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(min_=500,max_=12000))
map.render("2019年全国各地区GDP.html")

解析:add()来实现了数据的加载,在配置3个参数中——第1个是图的标题,第2个通过.values.tolist()加载要显示的数据,第3个"china"确保显示的地图类型是中国。有个细节需要注意,Map 使用的中国各省份需要将全部的省、市、自治区等去掉。set_global_opts()实现了用颜色标记数据的数值大小,参数min_和max_分别代表最小值和最大值。render()用于生成并保存图像。

效果如下:

然而数据分布并不平均,可以通过is_piecewise 属性表述分段自定义不同的颜色区间:

geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=[{"min":0,"max":10000,"label":"1~10000","color":"cyan"},{"min":10001,"max":20000,"label":"10001~20000","color":"yellow"},{"min":20001,"max":50000,"label":"20001~50000","color":"orange"},{"min":50001,"max":80000,"label":"50001~80000","color":"coral"},{"min":80001,"max":120000,"label":"80001~120000","color":"red"},]
))

效果如下:

二、全国各省多年GDP的可视化

由于要绘制2010-2019年的GDP数据,可以考虑构建一个for循环,通过str(i)+"年"的形式访问数据表格中处于不同列的各年GDP数据。绘制轮播图可考虑调用Timeline,代码如下:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map, Timelineframe = pd.read_csv('C:\\Users\\dell\\Desktop\\分省年度数据2.csv',encoding='GBK')
tl = Timeline()
for i in range(2010, 2020):map0 = (Map().add("省份",frame[['地区',str(i)+'年']].values.tolist(), "china").set_global_opts(title_opts=opts.TitleOpts(title="Map-{}年GDP(亿元)".format(i)),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=[{"min":0,"max":10000,"label":"1~10000","color":"cyan"},{"min":10001,"max":20000,"label":"10001~20000","color":"yellow"},{"min":20001,"max":50000,"label":"20001~50000","color":"orange"},{"min":50001,"max":80000,"label":"50001~80000","color":"coral"},{"min":80001,"max":120000,"label":"80001~12000","color":"red"},]   ),))tl.add(map0, "{}年".format(i))
tl.render("2010~2019年全国各地区GDP.html")

效果如下:

03

小结

本案例的实现并不复杂,在pyecharts官方的参考案例基础上稍加改动即可实现。作为一名初学者,模仿案例是提升功力的重要途径,通过模仿可以有效吃透代码要具体实现的功能,量变到质变,就能根据自己工作和学习的需要进行灵活应用。

◆ ◆ ◆  ◆ ◆麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗

Python精美地理可视化绘制——以中国历年GDP数据为例相关推荐

  1. 中国历年GDP数据地理可视化绘制

    中国历年GDP数据地理可视化绘制

  2. 【Python学习】使用pandas和matplotlib分析1949-2016年中国各省市历年GDP数据

    [Python学习]使用pandas和matplotlib分析1949-2016年中国各省市历年GDP数据 导入包 读取数据 设置颜色列表 绘图分析 导入包 由于我是在jupyter notebook ...

  3. Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件

    Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件 目录 Python使用matplotlib

  4. Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中

    Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中 目录 Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中

  5. Python使用matplotlib可视化斜率图、对比同一数据对象前后(before、after)两个状态的差异(Slope Chart)

    Python使用matplotlib可视化斜率图.对比同一数据对象前后(before.after)两个状态的差异(Slope Chart) 目录

  6. 用Python爬取中国各省GDP数据

    介绍 在数据分析和经济研究中,了解中国各省份的GDP数据是非常重要的.然而,手动收集这些数据可能是一项繁琐且费时的任务.幸运的是,Python提供了一些强大的工具和库,使我们能够自动化地从互联网上爬取 ...

  7. 从中国历年人口数据简单分析未来房价走势(本分析仅供参考)

    以下数据来自中国统计局官方网站 如上图可以看到,从1981 - 1997 的连续17年,中国每年人口净出生人口都在2000万以上.然后从1998年开始,逐年减少,从2001年开始至2017年,每年净出 ...

  8. 中国历年GDP增长率表

    年份 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 历史数据 13.5% 12.6% 10.5% 9.6% 8.8% 7.8% ...

  9. Python数据处理(一)——以美国各州统计数据为例

    编写本篇文章的目的:了解Python数据处理的基本步骤,计算美国各州的人口密度,数据来源:https://github.com/jakevdp/data-USstates/ ,共3张数据表格:stat ...

最新文章

  1. LintCode 249. 统计前面比自己小的数的个数
  2. Lucene的简单应用
  3. 如何使用graphpad做柱形图_自建房如何做防雷接地?使用什么材料?卫生间等电位如何连接?...
  4. MyBatis使用小案例
  5. java安全级别_java语言的线程安全级别--转
  6. java数组初始化的三种方式
  7. 再谈 document.documentElement 与 document.body 的 scrollWidth、offsetWidth、clientWidth
  8. MySQL按照汉字拼音首字母排序
  9. 通过一个IT管理服务提供商攻陷190个澳大利亚组织机构的邮件供应链
  10. 我的站(艾网---城市生活新门户)重新上线了
  11. 超快速的端到端实例分割模型,手把手教你用opencv部署Yolact
  12. 编译出错:self-encoder.context-me_method = ME_UMH;
  13. 勒索病毒最新变种for linux,Satan勒索病毒新变种卷土重来 安全狗提醒您注意
  14. Relab Sonsig Rev-A 演示 华丽的混响插件
  15. 哈工大硕士生用 Python 实现了 11 种经典数据降维算法,源代码库已开放
  16. 一直在寻找:我亲爱的朋友。
  17. 用正则匹配生成固定格式的随机文本python
  18. php文件是不是死链,怎么判断网站的链接是不是死链接? 百度搜索标准死链官方文档...
  19. 王者荣耀无限火力服务器,王者荣耀无限火力8.0
  20. 我的推荐系统入门经验~

热门文章

  1. idea java doc 模板_IntelliJ IDEA 符合 JavaDOC 的注释模板设置方法
  2. 3、React Native实战——实现QQ的登录界面
  3. 图像分割的U-Net系列方法
  4. Java字符串比较(3种办法
  5. 阿里云服务器进入黑洞怎么办?如何查看进入黑洞时间与原因
  6. C/C++学习笔记:按位运算基本知识及用法介绍
  7. 微信公众号开发应用redis案例一则
  8. 二十二、D触发器、T触发器、JK触发器设计总结
  9. UWA服务模式调整通知
  10. 建模笔记之maple学习