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

frame = 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, Timeline

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

这边呢,我给大家准备了很多的资料,可以加我微信领取:xxy12311007(备注CSDN)。

跪了,腾讯数据工程师用Python可视化绘制的中国GDP数据地图,大佬就是不一样相关推荐

  1. CSDN博客第一期订阅专栏:跟“风云卫星”数据工程师学Python

    在大伙的期盼中,CSDN博客第一期订阅专栏来啦!我们邀请了许向武老师,为大家分享的主题为:跟"风云卫星数据"工程师学Python. 作者简介 许向武:擅长Python语言编程,有超 ...

  2. R语言读取(加载)txt格式数据为dataframe、可视化绘制温度直方图、自定义设置坐标轴名称字体大小

    R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐标轴名称字体大小 目录 R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐 ...

  3. 用Python来绘制自己的个人足迹地图,精确到市级别

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 前两年,足迹地图小程序风靡朋友圈,一时间大家都流行晒自己的旅行地图.但是, ...

  4. BIGEMAP离线数据包网盘下载地址:中国高清地图数据,中国高清谷歌数据 密码:1111

    BIGEMAP离线数据包网盘下载地址:中国高清地图数据,中国高清谷歌数据     密码:1111

  5. python 可视化项目_python3项目之数据可视化

    数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联. 数据科学家使用Python编写了一系列令人印象深刻的可视化和分析工具,其中很多也可供 ...

  6. 处理100万条数据 python_使用 Python 处理3万多条数据只要几秒钟

    应用场景:工作中经常遇到大量的数据需要整合.去重.按照特定格式导出等情况.如果用 Excel 操作,不仅费时费力,还不准确,有么有更高效的解决方案呢? 本文以17个 txt 文本,3万多条数据为例,使 ...

  7. python可视化是什么意思_python3数据可视化是什么?

    今天又给大家带来新的词啦,初入python学习的小伙伴可能不是很了解,但是再进阶学习时候,肯定是要遇到的,因为这个也是我们之前阐述过的python学习的必学内容,因此,掌握好这部分内容很重要哦~好啦, ...

  8. python 可视化分析平台_python 数据分析数据可视化工具matplotlib

    说明: 数据可视化中的数据集下载地址:(数据来源:从零开始学python数据分析和挖掘) 链接:https://pan.baidu.com/s/1zrNpzSNVHd8v1rGFRzKipQ 提取码: ...

  9. 大数据治理工程师_大数据工程师课|新公布的4个大数据治理面对的问题,这些方面越来越重要...

    [摘要]在这个生产水平高速发展的今天,互联网每刻都会产生庞大的数据,我们将这类有意义的数据统称为大数据,为了将这类大数据用于各种行业里,我们就出现了大数据工程师,很多人都想了解有关于大数据工程师的内容 ...

  10. python读取网络端口数据_在Python中从SNMP端口获取数据

    我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...

最新文章

  1. [NC21228]货币系统
  2. 华为p4支持鸿蒙功能吗_吹过的牛都一步一步给实现了!明年华为手机支持升级鸿蒙系统!...
  3. 4702: 分糖果系列一
  4. 「MacOS」无法打开***,因为无法验证开发者。
  5. server之后安装ssms失败 安装sql_SQL Server 2017 安装问题(转)
  6. jenkins~集群分发功能和职责处理
  7. 10-Python-mapfilter
  8. python 图像识别男女_python实现图像识别功能
  9. web前端制作网页步骤以及制作网页学习教程
  10. 操作系统实验1—基于优先数的时间片轮转调度算法调度处理模拟程序设计
  11. 面试70问经典回答技巧
  12. 《信号与系统学习笔记》—线性时不变系统(一)
  13. Mac电脑上的精美的壁纸 Pap.er
  14. keil uvision4 调试教程
  15. 《APUE》在Ubuntu上使用apue.h
  16. 学一点SQL注入基础
  17. Oracle EBS 工具栏按钮失效
  18. win10 任务栏无法使用鼠标一直转圈圈解决方式
  19. 百度地图坐标转换为墨卡托坐标
  20. 对*p++与*++p;(*p)++ 与 ++(*p)的理解

热门文章

  1. C# 按拼音/笔划 排序的简单示例(转)
  2. 让我们在网页中实现数据库的增删改查~
  3. 201671030118 词频统计软件项目报告
  4. 外汇会计-概念-升水(Premium)
  5. 传统方法车道线标注及相关知识
  6. 【小象学院】案例4——52周存钱挑战v4.0
  7. 在c语言中TH1是什么意思,【菜鸟求助】请问拿到一个芯片比如HS0038,但是我怎么知道该怎么用它。C语言该怎么编...
  8. phpstudy搭建渗透测试环境
  9. android 手机数据查看及 samsung galaxy s10 开发者模式
  10. 机电大作业(第一阶段)