经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Echarts » 查看文章
Python pyecharts实现绘制中国地图的实例详解
来源:jb51  时间:2022/1/17 18:38:40  对本文有异议

实例演示

先给大家看下效果图哈。

1.pyecharts 1.9.1 版本安装与数据准备

首先需要安装 pyecharts 库,直接 pip install pyecharts 就好了。

新版本的话不需要单独安装地图,如果是 0.5 版本是需要单独安装的,目前演示的是当前最新版本 1.9.1

地图数据如下:

因为是中国地图,所以对标的省份,我设置了 2 组,里面的数据是随机生成的。

  1. # -*- coding:utf-8 -*-
  2. # 2022-1-14
  3. # 作者:小蓝枣
  4. # pyecharts地图
  5.  
  6. # 需要引用的库
  7. from pyecharts import options as opts
  8. from pyecharts.charts import Map
  9. import random
  10.  
  11. # 设置奥特曼所存在的相关省份,并设置初始数量为0
  12. ultraman = [
  13. ['四川', 0],
  14. ['台湾', 0],
  15. ['新疆', 0],
  16. ['江西', 0],
  17. ['河南', 0],
  18. ['辽宁', 0],
  19. ['西藏', 0]
  20. ]
  21.  
  22. # 设置怪兽存在的相关省份,并设置初始数量为0
  23. monster = [
  24. ['广东', 0],
  25. ['北京', 0],
  26. ['上海', 0],
  27. ['江西', 0],
  28. ['湖南', 0],
  29. ['浙江', 0],
  30. ['江苏', 0]
  31. ]
  32.  
  33. def data_filling(array):
  34. ? ? '''?
  35. ? ? ?作用:给数组数据填充随机数
  36. ? ? '''
  37. ? ? for i in array:
  38. ? ? ? ? # 随机生成1到1000的随机数
  39. ? ? ? ? i[1] = random.randint(1,1000)
  40. ? ? ? ? print(i)
  41.  
  42. data_filling(ultraman)
  43. data_filling(monster)

2.添加数据项,默认中国地图显示

首先演示下添加一组数据,运行后会生成一个 html 文件,打开后就可以查看生成的地图了。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="怪兽",
  9. data_pair=monster,
  10. maptype="china",
  11. )
  12. # 设置标题
  13. .set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
  14. # 生成本地html文件
  15. .render("中国地图.html")
  16. )

然后演示下添加两组数据,只要再加个 add() 函数就好了,非常方便。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. )
  12. .add(
  13. series_name="怪兽",
  14. data_pair=monster,
  15. maptype="china",
  16. )
  17. # 设置标题
  18. .set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
  19. # 生成本地html文件
  20. .render("中国地图.html")
  21. )

常用配置项及参数解析

1.设置是否默认选中

默认是选中的,添加 is_selected=False 参数可以设置默认不显示。

  1. def create_china_map():
  2. ? ? '''?
  3. ? ? ?作用:生成中国地图
  4. ? ? '''
  5. ? ? (
  6. ? ? ? ? Map()
  7. ? ? ? ? .add(
  8. ? ? ? ? ? ? series_name="奥特曼",?
  9. ? ? ? ? ? ? data_pair=ultraman,?
  10. ? ? ? ? ? ? maptype="china",?
  11. ? ? ? ? ? ? # 是否默认选中
  12. ? ? ? ? ? ? is_selected=False
  13. ? ? ? ? )
  14. ? ? ? ? .add(
  15. ? ? ? ? ? ? series_name="怪兽",?
  16. ? ? ? ? ? ? data_pair=monster,?
  17. ? ? ? ? ? ? maptype="china",?
  18. ? ? ? ? )
  19. ? ? ? ? # 设置标题
  20. ? ? ? ? .set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
  21. ? ? ? ? # 生成本地html文件
  22. ? ? ? ? .render("中国地图.html")
  23. ? ? )
  24.  
  25. create_china_map()

可以看到默认只显示了怪兽的数据。

2.设置地图颜色类型是否分段显示

视觉映射配置项 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True) 可以设置为地图颜色类型分段显示,max_ 的值对应的是数据的范围,参数 is_piecewise=True 表示为分段显示。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. # 是否默认选中
  12. is_selected=True
  13. )
  14. .add(
  15. series_name="怪兽",
  16. data_pair=monster,
  17. maptype="china",
  18. )
  19. .set_global_opts(
  20. # 设置标题
  21. title_opts=opts.TitleOpts(title="中国地图"),
  22. # 设置分段显示
  23. visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True)
  24. )
  25. # 生成本地html文件
  26. .render("中国地图.html")
  27. )

分段显示效果图:

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. # 是否默认选中
  12. is_selected=True
  13. )
  14. .add(
  15. series_name="怪兽",
  16. data_pair=monster,
  17. maptype="china",
  18. )
  19. .set_global_opts(
  20. # 设置标题
  21. title_opts=opts.TitleOpts(title="中国地图"),
  22. # 设置标准显示
  23. visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
  24. )
  25. # 生成本地html文件
  26. .render("中国地图.html")
  27. )

这是参数为 is_piecewise=False 的标准显示。

3.缩放平移配置

参数 is_roam=False 会控制不可进行鼠标缩放和平移。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. # 是否默认选中,默认为True
  12. is_selected=True,
  13. # 是否启用鼠标滚轮缩放和拖动平移,默认为True
  14. is_roam=False
  15. )
  16. .add(
  17. series_name="怪兽",
  18. data_pair=monster,
  19. maptype="china",
  20. )
  21. .set_global_opts(
  22. # 设置标题
  23. title_opts=opts.TitleOpts(title="中国地图"),
  24. # 设置标准显示
  25. visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
  26. )
  27. # 生成本地html文件
  28. .render("中国地图.html")
  29. )

参数启用时鼠标滚轮可以放大缩小图像。

鼠标可以左右拖动使地图平移。

优先级声明: a 数据设置为 False,b 数据设置为 True,不选中 a 数据,也可以进行缩放和平移拖动。

4.启用和关闭图形标记

参数 is_map_symbol_show=False 可以关闭图形标记,关闭就不显示点了。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. # 是否默认选中,默认为True
  12. is_selected=True,
  13. # 是否启用鼠标滚轮缩放和拖动平移,默认为True
  14. is_roam=True,
  15. # 是否显示图形标记,默认为True
  16. is_map_symbol_show=False
  17. )
  18. .add(
  19. series_name="怪兽",
  20. data_pair=monster,
  21. maptype="china",
  22. )
  23. .set_global_opts(
  24. # 设置标题
  25. title_opts=opts.TitleOpts(title="中国地图"),
  26. # 设置标准显示
  27. visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
  28. )
  29. # 生成本地html文件
  30. .render("中国地图.html")
  31. )

可以看到奥特曼相关区域的点已经没有了。

5.关闭标签名称显示

系列配置项的参数 label_opts=opts.LabelOpts(is_show=False) 可以关闭标签名称显示。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. # 是否默认选中,默认为True
  12. is_selected=True,
  13. # 是否启用鼠标滚轮缩放和拖动平移,默认为True
  14. is_roam=True,
  15. # 是否显示图形标记,默认为True
  16. is_map_symbol_show=False
  17. )
  18. .add(
  19. series_name="怪兽",
  20. data_pair=monster,
  21. maptype="china",
  22. )
  23. # 全局配置项
  24. .set_global_opts(
  25. # 设置标题
  26. title_opts=opts.TitleOpts(title="中国地图"),
  27. # 设置标准显示
  28. visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False),
  29. )
  30. # 系列配置项
  31. # 关闭标签名称显示
  32. .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  33. # 生成本地html文件
  34. .render("中国地图.html")
  35. )

可以看到省份的名称不显示了。

6.颜色设置:标签颜色、区域颜色、边框颜色

系列配置项里的标签加上 color="bule" 参数可设置标签颜色为蓝色。

图元样式配置的 areaColor 为区域颜色, borderColor 为边框颜色,

其中 normal 为常规模式下的,emphasis 为强调样式下的,即鼠标移动到区域上的显示。

  1. # 图元样式配置
  2. itemstyle_opts={
  3. # 常规显示
  4. "normal": {"areaColor": "white", "borderColor": "red"},
  5. # 强调颜色
  6. "emphasis": {"areaColor": "rgba(0,0,0,1)"}
  7. }

可以看到我鼠标移动到新疆显示的为我设置的黑色,透明度为 1。

  1. def create_china_map():
  2. '''
  3. 作用:生成中国地图
  4. '''
  5. (
  6. Map()
  7. .add(
  8. series_name="奥特曼",
  9. data_pair=ultraman,
  10. maptype="china",
  11. # 是否默认选中,默认为True
  12. is_selected=True,
  13. # 是否启用鼠标滚轮缩放和拖动平移,默认为True
  14. is_roam=True,
  15. # 是否显示图形标记,默认为True
  16. is_map_symbol_show=False,
  17. # 图元样式配置
  18. itemstyle_opts={
  19. # 常规显示
  20. "normal": {"areaColor": "white", "borderColor": "red"},
  21. # 强调颜色
  22. "emphasis": {"areaColor": "rgba(0,0,0,1)"}
  23. }
  24. )
  25. .add(
  26. series_name="怪兽",
  27. data_pair=monster,
  28. maptype="china",
  29. )
  30. # 全局配置项
  31. .set_global_opts(
  32. # 设置标题
  33. title_opts=opts.TitleOpts(title="中国地图"),
  34. # 设置标准显示
  35. visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
  36. )
  37. # 系列配置项
  38. .set_series_opts(
  39. # 标签名称显示,默认为True
  40. label_opts=opts.LabelOpts(is_show=True, color="blue")
  41. )
  42. # 生成本地html文件
  43. .render("中国地图.html")
  44. )

以上就是Python pyecharts实现绘制中国地图的实例详解的详细内容,更多关于Python pyecharts绘制中国地图的资料请关注w3xue其它相关文章!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号