Python使用pyecharts绘制地图数据可视化:从全国到地市级详解

Ruby
Ruby
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍如何使用Python的pyecharts库进行地图数据可视化。内容涵盖导入库、绘制中国地图、世界地图、省级地图及地级市地图的具体代码实现与结果展示。通过实例演示,帮助开发者掌握利用pyecharts生成交互式地图的方法,适用于疫情分布、人口统计等场景的数据展示。

本文旨在展示如何使用Python中的pyecharts库进行地图数据可视化。主要内容包括导入必要的库、绘制中国地图、世界地图、省级地图以及地级市地图的代码示例与最终效果。

导入pyecharts库

首先,需要导入pyecharts相关的模块,包括options和Map类,以便后续调用地图绘制功能。


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

绘制中国地图

接下来,我们将演示如何绘制中国地图,展示各省份的数据分布情况。

以下是绘制中国地图的具体代码实现。


data = [('湖北', 9074),('浙江', 661),('广东', 632),('河南', 493),('湖南', 463),
    ('安徽', 340),('江西', 333),('重庆', 275),('江苏', 236),('四川', 231),
    ('山东', 230),('北京', 191),('上海', 182),('福建', 159),('陕西', 116),
    ('广西', 111),('云南', 105),('河北', 104),('黑龙江', 95),('辽宁', 69),
    ('海南', 64),('新疆', 21),('内蒙古', 21),('宁夏', 28),('青海', 11),('甘肃', 40),('西藏', 1),
    ('贵州', 38),('山西', 56),('吉林', 23),('台湾', 10),('天津', 48),('香港', 14),('澳门', 8)]
def map_china() -> Map:
  c = (
    Map()
    .add(series_name="确诊病例", data_pair=data, maptype="china",zoom = 1,center=[105,38])
    .set_global_opts(
      title_opts=opts.TitleOpts(title="疫情地图"),
      visualmap_opts=opts.VisualMapOpts(max_=9999,is_piecewise=True,
              pieces=[{"max": 9, "min": 0, "label": "0-9","color":"#FFE4E1"},
                  {"max": 99, "min": 10, "label": "10-99","color":"#FF7F50"},
                  {"max": 499, "min": 100, "label": "100-499","color":"#F08080"},
                  {"max": 999, "min": 500, "label": "500-999","color":"#CD5C5C"},
                  {"max": 9999, "min": 1000, "label": ">=1000", "color":"#8B0000"}]
                       )
    )
  )
  return c

d_map = map_china()
d_map.render_notebook()

运行上述代码后,生成的中国地图可视化结果如下所示。

绘制世界地图

随后,我们展示如何绘制世界地图,以全球视角查看数据分布。


data = [['China', 14489],['Japan', 20],['Thailand', 19],['Singapore', 18],['Korea', 15],
    ['Australia', 12],['Germany', 10],['Malaysia', 8],['United States', 8],['Vietnam', 7],['France', 6],
    ['United Arab Emirates', 5],['Canada', 4],['Italy', 2],['India', 2],
    ['United Kingdom', 2],['Philippines', 2],['Russia', 2],['Sri Lanka', 1],['Cambodia', 1],
    ['Nepal', 1],['Sweden', 1],['Finland', 1],['Spain', 1]]
def map_world() -> Map:
  c = (
    Map()
    .add("确诊病例", data, maptype="world",zoom = 1)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
      title_opts=opts.TitleOpts(title="疫情地图"),
      visualmap_opts=opts.VisualMapOpts(max_=100,is_piecewise=False),
    )
  )
  return c
 
d_map = map_world()
d_map.render_notebook()

世界地图的代码实现如下。

绘制省级地图

绘制省级地图,以云南省为例,展示更细粒度的数据分布。


data = [['昆明市', 31],['玉溪市', 11],['楚雄彝族自治州', 2],['西双版纳傣族自治州', 12],['普洱市', 4],
    ['昭通市', 8],['曲靖市', 5],['迪庆藏族自治州', 0],['丽江市', 7],['临沧市', 1],['保山市', 8],
    ['怒江傈僳族自治州', 0],['大理白族自治州', 7],['德宏傣族景颇族自治州', 4],['红河哈尼族彝族自治州', 5],
    ['文山壮族苗族自治州', 0]]
def map_yunnan() -> Map:
  c = (
    Map()
    .add("确诊病例", data, "云南",zoom = 1)
    .set_global_opts(
      title_opts=opts.TitleOpts(title="云南疫情地图"),
      visualmap_opts=opts.VisualMapOpts(max_=31,is_piecewise=True,
              pieces=[{"max": 0, "min": 0, "label": "0","color":"#FFFFFF"},
                  {"max": 9, "min": 1, "label": "0-9","color":"#FFE4E1"},
                  {"max": 99, "min": 10, "label": "10-99","color":"#FF7F50"},
                  {"max": 499, "min": 100, "label": "100-499","color":"#F08080"},
                  {"max": 999, "min": 500, "label": "500-999","color":"#CD5C5C"},
                  {"max": 9999, "min": 1000, "label": ">=1000", "color":"#8B0000"}]
                       ),
    )
  )
  return c
 
d_map = map_yunnan()
d_map.render_notebook()

省级地图的代码实现如下。

绘制地级市地图

最后,我们演示如何绘制地级市地图,以楚雄彝族自治州为例,展示最细粒度的数据分布。


data = [['楚雄市', 31],['玉溪市', 11],['楚雄彝族自治州', 2],['西双版纳傣族自治州', 12],['普洱市', 4],
    ['昭通市', 8],['曲靖市', 5],['迪庆藏族自治州', 0],['丽江市', 7],['临沧市', 1],['保山市', 8],
    ['怒江傈僳族自治州', 0],['大理白族自治州', 7],['德宏傣族景颇族自治州', 4],['红河哈尼族彝族自治州', 5],
    ['文山壮族苗族自治州', 0]]
def map_yunnan() -> Map:
  c = (
    Map()
    .add("确诊病例", data_pair=data, maptype="楚雄彝族自治州",zoom = 1)
    .set_global_opts(
      title_opts=opts.TitleOpts(title="楚雄地图"),
      visualmap_opts=opts.VisualMapOpts(max_=31,is_piecewise=False),
    )
  )
  return c
 
d_map = map_yunnan()
d_map.render_notebook()

地级市地图的代码实现如下。

至此,关于使用Python pyecharts库进行地图数据可视化的介绍已完成。如需了解更多相关技巧,可查阅本站其他文章或继续浏览后续内容。感谢支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表