【jupyterlab+pyecharts】自定义底图的地理信息可视化

pyecharts包官方指南:https://pyecharts.org/#/zh-cn/intro

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

pyecharts原本自带的Geo()模块中中国地图的底图是全国范围的geojson文件,如果想要使用自定义区域底图,比如长三角范围内各个城市的该怎么办呢?

这篇就来讲讲我怎么搞的。

1. 下载自己所需的geojson文件

这里推荐阿里云提供的基于高德地图的geojson文件下载地址:https://datav.aliyun.com/tools/atlas/index.html

阿里云geojson下载

自己可以根据需要处理数据,拼接多个geojson文件,获得自定义范围的地图底图。

比如我这里合并了长三角范围内的26个城市的geojson。

合并后的长三角geojson

2. pyecharts替换Geo()地图底图

from pyecharts.charts import Map,Geo
import pyecharts.commons.utils
from pyecharts.globals import CurrentConfig, NotebookType,ChartType, SymbolType
from pyecharts import options as opts
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB #jupyterlab这里需要额外配置

with open(path+"geojson\长三角合并geojson.json", "r", encoding="utf-8") as f: #加载我们的geojson文件
    j = json.load(f)
c = (
    Geo()
    .add_js_funcs("echarts.registerMap('上海', {})".format(j))#使用js function,将原来Geo()自带的上海地图换成我们自己的geojson文件
    .add_schema(maptype="上海",label_opts=opts.LabelOpts(is_show=True))#使用底图
)
c.load_javascript()#使其支持自定义js
c.render_notebook()#直接展示在jupyterlab

长三角底图

3. 基于底图进行自定义展示

比如我这里绘制了城市间的流动线条。

长三角出行意愿

打赏
  • © 2020-2022 Eva Ren
  • Powered by Hexo Theme Ayer
    • 本站总访问量
    • 本页面总访问量
  • 载入运行时间...

请我喝杯咖啡吧~

支付宝
微信