Python+pyecharts在地图上呈现数据

本文主要内容

  • 前言
  • 一、 地图的基本使用方法
  • 二、 地图与数据结合
    • 1、各省GDP在地图上展示
    • 2、去除地图上的数据信息
    • 3、用颜色区别数据大小
    • 4、自己定义颜色区间
    • 5、修改点的显示效果
    • 6、修改地图的色彩
  • 三、 Pyecharts制作地图的其他几种方式
    • 1、Map()
    • 2、Geo()
    • 3、Bmap()
    • 4、Map3D()

前言

今天和老师一起学习在地图上呈现数据,使用的库为pyecharts。
看到这个库名时,我有似曾相似的感觉,翻看了一下,前段时间想实现可交互的图表时,了解过这个库。所以关于这个库,我这儿顺便多说几句吧。
Pyecharts的中文手册,见https://pyecharts.org/#/zh-cn/
官网对pyecharts的简介如下:
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
该库可以画柱状图、饼图、散点图……,该库的基础应用及各种配置项都可以在手册中查到。
今天我们先学该图库的Geo地图类型。

一、 地图的基本使用方法

【脚本】

from pyecharts.charts import Geo
geo = Geo()
geo.add_schema(maptype="china")
geo.render()

【结果】
注意,这个绘制结果不会直接显示出来,而是生成一个名为“render.html”的文档,用浏览器打开该文件,即可看到如下的地图:
Python+pyecharts在地图上呈现数据_第1张图片

【语法特征】
老师上课没有解释以上语法,于我这个新手而言,这个语法模式我不太熟悉,至少与matplotlib的用法不太相同。个人感觉,pyechart使用时,都要使用Bar()\Pie()\Funnel()\Geo()初始化一个实例对象,然后在这个对象上各种add_…
这里的add_schema()表示增加一个框架,指定是看哪个地方的地图,如:maptype=“china”、maptype=“山东”……
此后在使用中还会有大量的option配置项,官网中这么说“在 pyecharts 中,一切皆 Options”。由此可见,在pyecharts中,想实现什么个性化的设置,大多需要设置option的。

二、 地图与数据结合

1、各省GDP在地图上展示

从统计局官网下载(http://data. stats.gov.cn/)各省份在各年份的GDP数据。(注:整理笔记时网站处于升级状态,无法下载,我使用此前下载过的数据)。下载的数据表样如下:
在这里插入图片描述

此后读入数据,并将数据转化为pyecharts能用的二维列表数据。
【脚本】

#导入各省GDP数据
df = pd.read_csv(r'D:\cpda\python\data\分省年度数据.csv', encoding='GBK')
#将需要展示的数据转为二维列表格式,以便pyecharts使用
ls_2019 = df[['地区', '2019年']].values.tolist()
geo = Geo()
geo.add_schema(maptype="china")
#加入数据
geo.add('图表名称:2019年各省GDP', ls_2019)
geo.render()

【结果】
Python+pyecharts在地图上呈现数据_第2张图片

2、去除地图上的数据信息

【脚本】

from pyecharts import options as opts
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

【结果】
Python+pyecharts在地图上呈现数据_第3张图片

【说明】
可以了解一下,这个set_series_opts(),可以设置标签、线形等效果。详细如下:
Python+pyecharts在地图上呈现数据_第4张图片

3、用颜色区别数据大小

【脚本】

geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=110000))

【结果】
Python+pyecharts在地图上呈现数据_第5张图片

【说明】
同样set_global_opts(),也可以设置很多配置项,如:标题、工具箱等。详细如下:
Python+pyecharts在地图上呈现数据_第6张图片

4、自己定义颜色区间

【脚本】

#自己定义颜色区间
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(
    is_piecewise=True,  # 表示分段
    pieces=[{'min': 0 , 'max':10000, 'label':1, 'color':'blue'},
            {'min': 10001 , 'max':20000, 'label':2, 'color':'cyan'},
            {'min': 20001, 'max': 50000, 'label': 3, 'color': 'green'},
            {'min': 50001, 'max': 80000, 'label': 8, 'color': 'yellow'},
            {'min': 80001, 'max': 100000, 'label': 10, 'color': 'orange'},
            {'min': 100001, 'max': 200000, 'label': 20, 'color': 'red'},
            ]
    ))

【结果】
Python+pyecharts在地图上呈现数据_第7张图片

【说明】
这里的分段是自己分的,可以根据数据的密集程度自己调节。

5、修改点的显示效果

【脚本】

from pyecharts.globals import ChartType
geo.add('图表名称:2019年各省GDP', ls_2019, type_=ChartType.EFFECT_SCATTER)

【结果】
Python+pyecharts在地图上呈现数据_第8张图片

6、修改地图的色彩

【脚本】

geo.add_schema(maptype="china", itemstyle_opts=opts.ItemStyleOpts(color='#A60B63',border_color='#FFFF22'))

【结果】
Python+pyecharts在地图上呈现数据_第9张图片

三、 Pyecharts制作地图的其他几种方式

老师说,pyecharts还有其他方式可以实现在地图上呈现数据,好奇pyecharts到底有几种地图实现方式,所以百度了一下,有一篇博文写的内容比较简单明了,引用来供自己学习。
以下内容来自:
https://www.cnblogs.com/liuzaoqi/p/13041411.html
文中说Pyecharts有四种地图,Map()、Geo()、Bmap()、Map3d。

1、Map()

该地图可以按数据大小给相应的区域着色,所以Map更应该适合能将地图填满的数据。如疫情期间的数据图:
Python+pyecharts在地图上呈现数据_第10张图片

2、Geo()

该地图绘制出来的地图不会显示省份/城市的名字,并且用热力图的方式让数据差异更直观,而这恰好解决了Map不适用与小部分数据的短板。所以当数据量不是很多的时候又想绘制地图就可以考虑使用Geo并通过热力图的方法来展示。当然Geo还支持不同样式动态的流向地图。如我们本文的制作的图。

3、Bmap()

该地图就是百度地图,Pyecharts可以调用百度地图的接口来让地图更加丰富。使用Bmap绘制出来的地图更接近我们平时使用的地图,并支持缩放来查看更多细节而更加真实,不过使用Bmap之前需要去百度地图开放平台申请一个API KEY才能使用。效果如下:
Python+pyecharts在地图上呈现数据_第11张图片

4、Map3D()

该地图会让数据更加立体的展示出来,不过虽然炫酷,但是要整理经纬度数据等需要消耗太多的时间,而且代码调整起来也比之前几种地图更加复杂。效果如下:
Python+pyecharts在地图上呈现数据_第12张图片

【The End】

你可能感兴趣的:(项目,python,数据可视化,数据分析)