[python] 几行代码也能玩转世界地图?
Posted Train丶Young
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[python] 几行代码也能玩转世界地图?相关的知识,希望对你有一定的参考价值。
前些天收到某位大佬的求助,说是需要给根据数据给安徽省地市来绘制个图,用不同颜色来直观表示数据。当时就想到了Python提供一个绘制地图的库—— Pyecharts。
Pyecharts是一个用于生成echarts图表的类库, 它是百度开源的一个数据可视化 JS 库。Echarts详情点击这里。
安装库很简单,大家只要在环境变量里有添加过Python和其pip工具就OK。
pip install Pyecharts
当然有了该库后还不够,需要地图文件,所以以下几个需要按需安装
- 全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图
- 中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区
- 中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市
- 中国县区级地图: echarts-china-counties-pypkg (4.1MB):2882 个中国县·区
- 中国区域地图: echarts-china-misc-pypkg (148KB):11 个中国区域地图,比如华南、华北。
如上使用pip install 命令完成安装即可。
基本应用::基本地图绘制
如果我们需要绘制一副安徽省的地图,并且我们给每个地市一定的数据,让地图在着色上表现出其数据的差异,这时,pyecharts是特别方便的一个应用。
from pyecharts import Map city = [‘合肥市‘, ‘芜湖市‘, ‘宿州市‘,‘淮北市‘,‘亳州市‘,‘阜阳市‘,‘蚌埠市‘,‘淮南市‘,‘滁州市‘,‘六安市‘,‘马鞍山市‘,‘安庆市‘,‘铜陵市‘,‘宣城市‘,‘池州市‘,"黄山市"] area = [11445.1, 6026.05, 9938.77, 2741.39, 8521.23, 10118.17,5950.72, 5532.30, 13515.99, 15450.82, 4049.13, 13537.96, 2922.60, 12312.55,8398.72, 9678.39] # 绘制地图 map_1 = Map("安徽省图例-各地市面积",title_pos=‘center‘,width=1200, height=600) # 地图详细信息 map_1.add("", city, area,maptype=‘安徽‘, is_visualmap=True, visual_range=[min(area), max(area)], visual_text_color=‘black‘, is_map_symbol_show=False, is_label_show=True) # 输出到当前文件夹下,保存名为 安徽省地图,文件类型为html map_1.render("安徽省地图.html")
看看文件的结果如何:
这个简直很完美好吧,
1.左侧的颜色区间为渐变色,天空蓝——黄——红,表示的数据为由低到高;
2.数据的值并非手动分段,而是自动分段,故不一定是我们想要的;
3.鼠标放在某块地市区域上时,会高亮显示,并且会显示详细信息,这是一个可选项。
4…还是自己挖掘吧。
既然是由开源JS迁过来的,我们就必须要看看其网页源代码。
Woc,这个代码行数和右边的滚动块根本不是我想要的比例好吗!!看来期间那段js函数是一个大工程啊。
从参数option_xxxx可以看出,这些项基本为我们自己定义:如
title是一个字典,text值为我们标题值,这里用的其他编码所表示
left值为我们所设置的 title_pos= ‘center’
top,textStyle,subtextStyle为默认值,我们并未去修改。
挑一些重要的说:
mapType即为我们所想显示的地图,如我们选的安徽(不要带上省市单位,如想显示合肥市,则填合肥即可)
data是我们所选地市名称和面积数据,所以在Python中我们也可以写成字典形式
VisualMap基本就是地图显示的详细信息了,
Type有两个值可以选 continuous和piecewise,前者为连续后者为分段
Min,max是数据范围,即Python中visual_range的参数
inRange内参数color即颜色范围,可以选择多项,当然可以用英文表示,如’skyblue’等
splitNumber是分段,自动分为5段,默认值为5
参数众多,以上挑了一些比较重要的。
如果想要编辑这HTML文件,可以使用记事本打开,还有一个比较好用的文档编辑器notepad++(适用于多种文档),sublime text,Dreamweaver等文件。
如果想要了解更详细的参数,访问这里。
官方文档。
(PS:文档是用word编辑,发表于本人公众号的,超链接一律失效,图片水印为公众号名称,支付宝搜索8282704领红包)
以上是关于[python] 几行代码也能玩转世界地图?的主要内容,如果未能解决你的问题,请参考以下文章