Python 使用 pyecharts 绘制地图

安装

  • 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 install echarts-china-misc-pypkg
  • pip install echarts-united-kingdom-pypkg

1、获取经纬度 – 高德地图

  • 首先使用高德地图提供的,路线规划API,我选择的是货车。

Python 使用 pyecharts 绘制地图_第1张图片

  • 获取方式:看提供的API接口,货车的接口如下:

https://restapi.amap.com/v4/direction/truck?width=2.5&strategy=5&size=2&weight=10&axis=2&origin=116.349845,39.932893&destination=105.737597,34.578956&height=1.6&load=0.9&key=

其中:出发地(经度,维度),目的地(经度,维度)

北京天安门 116.397451,39.909187 ;上海东方明珠塔 121.499717,31.239702

key 自己在高德平台申请

2、处理获取到的经纬度数据

  • 请求的数据如下,但是最后得处理成 json 文件

Python 使用 pyecharts 绘制地图_第2张图片

json 文件格式的坐标数据
     格式如下
     {
       "阿城": [126.58, 45.32],
       "阿克苏": [80.19, 41.09]
     }

3、编辑代码

我的目录结构:
Python 使用 pyecharts 绘制地图_第3张图片

代码:

# -*- coding:utf-8 -*- 
# author: LIUWENYU
# datetime: 2020/8/24 15:00
# describe:

from pyecharts import options as opts
from pyecharts.charts import Geo

with open('coordinates.json','r') as f:
        data = f.read()

address = [k for k,v in eval(data).items()]
pot = [v for k,v in eval(data).items()]

print(len(address))     # 多少个地点名称
print(len(pot))         # 多少个经纬度

# 链式调用
c = (
        Geo()
        .add_schema(maptype="china",is_roam=True)
        .add_coordinate_json(json_file='coordinates.json')
        # 为自定义的点添加属性
        .add("地点坐标点", data_pair = [list(z) for z in zip(address, pot)],
             is_large=True, large_threshold = 2000,  symbol="pin", color='red',symbol_size=5)
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(title_opts=opts.TitleOpts(title="路径规划"))
)



# 在 html(浏览器) 中渲染图表
c.render()

4、生成地图

Python 使用 pyecharts 绘制地图_第4张图片

5、源码

链接:https://github.com/HAHA-LIU/tools/tree/master/map_utils

6、Pyecharts官网

我也是看着官网搞的:Pyecharts 官网

你可能感兴趣的:(笔记,python,数据可视化,pyecharts)