前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
Python的地图可视化库很多,Matplotlib库虽然作图很强大,但只能做静态地图。而我今天要讲的是交互式地图库,分别为pyecharts、folium,掌握这两个库,基本可以解决你的地图可视化需求。
pyecharts
首先,必须说说强大的pyecharts库,简单易用又酷炫,几乎可以制作任何图表。pyecharts有v0.5和v1两个版本,两者不兼容,最新的v1版本开始支持链式调用,采用options配置图表。pyecharts在制作地图方面,包含Map、Geo和Bmap三类,使用Map类支持世界、国家、省市和区县四级地图,使用前需独立安装。so,pip它们!
pip install pyecharts
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip完之后,查看下pyecharts版本。
import pyecharts
print(pyecharts.__version__)
毋庸置疑,肯定是最新版本啦,版本号为1.6.2。
一、Map
在制作地图前,首先要有数据,我从Wind数据库导出了全国各省GDP总量数据,命名为GDP.xlsx,如下图所示。
有了数据,咱们就可以用python开始操作了,先把需要的库import一下。
import pandas as pd #pandas是强大的数据处理库
from pyecharts.charts import Map
from pyecharts import options as opts
用pandas读取GDP.xlsx,提取2019年各省GDP数据为例,我们来制作地图。这里注意下zip() 函数,它用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。
data = pd.read_excel('GDP.xlsx')
province = list(data["province"])
gdp = list(data["2019_gdp"])
list = [list(z) for z in zip(province,gdp)]
我们来打印下list,长这样:
其实就是列表里嵌套列表的数据结构,只有这种结构把数据添加到地图中去。我们用Map类中的常用方法add、set_global_opts和render来配置地图。
c = (
Map(init_opts=opts.InitOpts(width="1000px", height="600px")) #初始化地图大小
.set_global_opts(
title_opts=opts.TitleOpts(title="2019年各省GDP分布图 单位:亿元"), #配置标题
visualmap_opts=opts.VisualMapOpts(
type_ = "scatter" #散点类型
)
)
.add("GDP",list,maptype="china") #将list传入,地图类型为中国地图
.render("Map1.html")
)
运行以上代码,用浏览器打开生成的Map1.html,效果如下: