100天精通Python(可视化篇)——第109天:Pyecharts绘制各种常用地图(参数说明+代码实战)

文章目录

  • 专栏导读
  • 一、地图应用场景
  • 二、参数说明
    • 1. 导包
    • 2. add函数
  • 三、地图绘制实战
    • 1. 省市地图
    • 2. 中国地图
    • 3. 中国地图(带城市)
    • 4. 中国地图(分段型)
    • 5. 中国地图(连续型)
    • 6. 世界地图
    • 7. 行程轨迹地图
    • 8. 人口密度地图

专栏导读

🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)
  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
    在这里插入图片描述
    在这里插入图片描述

一、地图应用场景

Pyecharts地图可以应用于以下场景:

  1. 数据可视化:Pyecharts地图可以将数据可视化展示在地图上,帮助用户更直观地了解数据分布情况。例如,可以使用地图展示全国各个城市的销售额情况,或者展示全球各个国家的人口密度情况。

  2. 地理分析:Pyecharts地图可以进行地理分析,帮助用户研究地理位置对某些现象的影响。例如,可以使用地图展示全国各个省份的GDP分布情况,或者展示全球各个国家的气候变化情况。

  3. 商业决策:Pyecharts地图可以帮助商业用户做出更明智的决策。例如,在选择开设新的分店时,可以使用地图展示各个候选地点的竞争情况、人口密度情况等,帮助决策者做出合理的选择。

  4. 教育教学:Pyecharts地图可以用于教育教学领域,帮助学生更好地理解地理知识。例如,可以使用地图展示各个国家的地理特点、文化特点等,让学生更加直观地了解世界各地的差异。

  5. 历史研究:Pyecharts地图可以用于历史研究领域,帮助研究人员更好地理解历史事件的地理背景。例如,可以使用地图展示历史时期各个国家的疆域变化情况,帮助研究人员更好地分析历史事件的原因和影响。

总而言之,Pyecharts地图可以应用于各个领域,帮助用户更好地理解和分析地理数据,做出更明智的决策。

在这里插入图片描述

二、参数说明

1. 导包

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

2. add函数

def add(self,series_name: str,  # 系列名称data_pair: types.Sequence[types.Union[types.Sequence, opts.MapItem, dict]],  # 数据对,包含地理位置和数值maptype: str = "china",  # 地图类型,默认为中国地图*,is_roam: bool = True,  # 是否开启鼠标缩放和平移漫游,默认为开启center: types.Optional[types.Sequence] = None,  # 地图中心点坐标,默认为Noneaspect_scale: types.Numeric = 0.75,  # 地图长宽比,默认为0.75bounding_coords: types.Optional[types.Sequence[types.Numeric]] = None,  # 地图的最大最小经纬度范围,默认为Nonemin_scale_limit: types.Optional[types.Numeric] = None,  # 最小的缩放比例限制,默认为Nonemax_scale_limit: types.Optional[types.Numeric] = None,  # 最大的缩放比例限制,默认为Nonename_property: str = "name",  # 地图数据项中地理位置的属性名称,默认为"name"selected_mode: types.Union[bool, str] = False,  # 选中模式,默认为False,可选值为"single"、"multiple"zoom: types.Optional[types.Numeric] = 1,  # 地图缩放级别,默认为1name_map: types.Optional[dict] = None,  # 地理位置名称的映射关系,默认为Nonesymbol: types.Optional[str] = None,  # 地图标记的图形,默认为None,可选值为"circle"、"rect"、"roundRect"等map_value_calculation: str = "sum",  # 地图数值的计算方式,默认为"sum",可选值为"average"、"max"、"min"等is_map_symbol_show: bool = True,  # 是否显示地图标记,默认为Truez_level: types.Numeric = 0,  # 图形的层级,默认为0z: types.Numeric = 2,  # 图形的z值,默认为2pos_left: types.Optional[types.Union[str, types.Numeric]] = None,  # 图形左上角的位置,默认为Nonepos_top: types.Optional[types.Union[str, types.Numeric]] = None,  # 图形左上角的位置,默认为Nonepos_right: types.Optional[types.Union[str, types.Numeric]] = None,  # 图形右下角的位置,默认为Nonepos_bottom: types.Optional[types.Union[str, types.Numeric]] = None,  # 图形右下角的位置,默认为Nonegeo_index: types.Optional[types.Numeric] = None,  # 地理位置的索引,默认为Noneseries_layout_by: str = "column",  # 系列的布局方式,默认为"column",可选值为"row"dataset_index: types.Optional[types.Numeric] = 0,  # 数据集的索引,默认为0layout_center: types.Optional[types.Sequence[str]] = None,  # 图形布局的中心点,默认为Nonelayout_size: types.Union[str, types.Numeric] = None,  # 图形布局的大小,默认为Nonelabel_opts: types.Label = opts.LabelOpts(),  # 标签的配置项,默认为LabelOpts()tooltip_opts: types.Tooltip = None,  # 提示框的配置项,默认为Noneitemstyle_opts: types.ItemStyle = None,  # 图形样式的配置项,默认为Noneemphasis_label_opts: types.Label = None,  # 强调状态下标签的配置项,默认为Noneemphasis_itemstyle_opts: types.ItemStyle = None,  # 强调状态下图形样式的配置项,默认为None)

三、地图绘制实战

1. 省市地图

通过add函数添加maptype="四川"参数选择地区为四川省地图(可选其他地区):

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerc = (Map()  # 创建地图对象.add("商家A", [list(z) for z in zip(Faker.guangdong_city, Faker.values())], maptype="四川")  # 添加数据,地区选择四川(也可以选择其他省市).set_global_opts(title_opts=opts.TitleOpts(title="四川地图"),  # 设置标题为"四川地图"visualmap_opts=opts.VisualMapOpts()  # 设置可视化地图的配置项)
)# 渲染图表
c.render("四川地图.html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:
在这里插入图片描述

2. 中国地图

通过add函数添加maptype="china"参数选择地区为中国地图(可选其他地区):

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerc = (Map() # 创建地图对象.add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], maptype="china") # 添加数据,商家A在中国各个省份的销售额.set_global_opts(title_opts=opts.TitleOpts(title="中国地图")) # 设置标题
)# 渲染图表
c.render("中国地图.html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:
在这里插入图片描述

3. 中国地图(带城市)

通过add函数添加maptype="china-cities"参数选择省份(可选其他地区):

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerc = (Map()  # 创建地图对象.add("商家A",[list(z) for z in zip(Faker.guangdong_city, Faker.values())], maptype="china-cities",  # 添加数据,商家A在中国各个城市的销售额,使用带有城市的中国地图label_opts=opts.LabelOpts(is_show=False),  # 设置标签的配置项,不显示标签).set_global_opts(title_opts=opts.TitleOpts(title="中国地图(带城市)"),  # 设置标题为"中国地图(带城市)"visualmap_opts=opts.VisualMapOpts(),  # 设置可视化地图的配置项)
)# 渲染图表
c.render("中国地图(带城市).html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:
在这里插入图片描述

4. 中国地图(分段型)

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerc = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], maptype= "china").set_global_opts(title_opts=opts.TitleOpts(title="中国地图(分段型)"),visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True), # 设置视觉映射选项,最大值为200,且采用分段型颜色映射)
)# 渲染图表
c.render("中国地图(分段型).html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:
在这里插入图片描述

5. 中国地图(连续型)

连续型和分段型的区别在于opts.VisualMapOpts(max_=200)没有is_piecewise=True参数:

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerc = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], maptype="china").set_global_opts(title_opts=opts.TitleOpts(title="中国地图(连续型)"),visualmap_opts=opts.VisualMapOpts(max_=200), # 设置视觉映射选项,最大值为200)
)# 渲染图表
c.render("中国地图(连续型).html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:
在这里插入图片描述

6. 世界地图

通过add函数添加maptype="world"参数选择地区为世界地区(可选其他地区):

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerc = (Map().add("商家A", [list(z) for z in zip(Faker.country, Faker.values())], maptype="world").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="世界地图"),visualmap_opts=opts.VisualMapOpts(max_=200),)
)# 渲染图表
c.render("世界地图.html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:

在这里插入图片描述

7. 行程轨迹地图

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType# 创建一个 Geo 对象 c,Geo 是 pyecharts 库中用于生成地理坐标图的类
c = (Geo()# 使用 add_schema 方法添加地图的 schema,指定了地图类型为“中国”以及相关的样式选项.add_schema(maptype="china",itemstyle_opts=opts.ItemStyleOpts(),)# 使用 add 方法向地图添加数据,第一部分数据为散点图,显示的是各个城市的标记点,用白色显示.add("",[("成都", 50), ("北京", 60), ("杭州", 70), ("重庆", 80)],type_=ChartType.EFFECT_SCATTER,color="white", # 城市的标记点颜色为白色)# 使用 add 方法向地图添加另一部分数据,显示的是连接各个城市的线,箭头指向的方向表示行程的起点和终点.add("geo",[("成都", "北京"), ("成都", "上海"), ("成都", "海南"), ("成都", "哈尔滨")],type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="red"),  # 线条效果选项,箭头大小为6,颜色为红色linestyle_opts=opts.LineStyleOpts(curve=0.2),  # 线条样式选项,曲线值为0.2)# 使用 set_series_opts 方法设置系列选项,不显示标签.set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 使用 set_global_opts 方法设置全局选项,设置地图标题为“行程轨迹地图”.set_global_opts(title_opts=opts.TitleOpts(title="行程轨迹地图")))# 渲染图表
c.render("行程轨迹地图.html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:
在这里插入图片描述

8. 人口密度地图

import ssl
import pyecharts.options as opts
from pyecharts.charts import Map
# 导入所需的库,用于操作 SSL 连接,后面会用它来创建一个默认的 HTTPS 上下文,但不会进行证书验证
ssl._create_default_https_context = ssl._create_unverified_context
# 与 pyecharts 注册,当画香港地图的时候,用 echarts-china-cities-js
# register_url("https://echarts-maps.github.io/echarts-china-cities-js")
# 定义一个名为 WIKI_LINK 的字符串常量,指向维基百科上关于香港行政区域的部分
WIKI_LINK = ("http://zh.wikipedia.org/wiki/""%E9%A6%99%E6%B8%AF%E8%A1%8C%E6%94%BF%E5%8D%80%E5%8A%83#cite_note-12"
)
# 定义一个名为 MAP_DATA 的列表,包含了香港各区的名称和人口密度数据(截至2011年)
MAP_DATA = [["中西区", 20057.34],["湾仔", 15477.48],["东区", 31686.1],["南区", 6992.6],["油尖旺", 44045.49],["深水埗", 40689.64],["九龙城", 37659.78],["黄大仙", 45180.97],["观塘", 55204.26],["葵青", 21900.9],["荃湾", 4918.26],["屯门", 5881.84],["元朗", 4178.01],["北区", 2227.92],["大埔", 2180.98],["沙田", 9172.94],["西贡", 3368],["离岛", 806.98],
]# 定义一个名为 NAME_MAP_DATA 的字典,用于映射地图数据中的区域名称和实际的区域名称
NAME_MAP_DATA = {# "key": "value"  # 这个字典的键值对表示的是地图数据中的区域名称和实际的区域名称的对应关系"中西区": "中西区","东区": "东区","离岛区": "离岛","九龙城区": "九龙城","葵青区": "葵青","观塘区": "观塘","北区": "北区","西贡区": "西贡","沙田区": "沙田","深水埗区": "深水埗","南区": "南区","大埔区": "大埔","荃湾区": "荃湾","屯门区": "屯门","湾仔区": "湾仔","黄大仙区": "黄大仙","油尖旺区": "油尖旺","元朗区": "元朗",
}# 创建一个 Map 对象 c,这是 pyecharts 库中用于生成地图的对象
c = (Map()# 使用 add 方法向地图添加数据和配置项,其中 series_name 是系列名称,maptype 是地图类型,data_pair 是数据对,name_map 是区域名称映射表,is_map_symbol_show 控制是否显示地图标记.add(series_name="香港18区人口密度",maptype="香港",data_pair=MAP_DATA,name_map=NAME_MAP_DATA,is_map_symbol_show=False,)# 使用 set_global_opts 方法设置全局配置项,其中包括标题选项、工具提示选项和视觉映射选项.set_global_opts(title_opts=opts.TitleOpts(# 设置地图的标题title="香港18区人口密度 (2011)",# 设置地图的副标题,并给出副标题的链接subtitle="人口密度数据来自Wikipedia",subtitle_link=WIKI_LINK,),tooltip_opts=opts.TooltipOpts(# 设置触发工具提示的方式为“item”,即鼠标移动到地图标记上时显示工具提示trigger="item",# 设置工具提示的格式,这里用 HTML 格式设置了行内样式,使得工具提示中显示地区名称和人口密度,并规定字体大小和颜色formatter="{b}<br/>{c} (p / km2)"),visualmap_opts=opts.VisualMapOpts(# 设置视觉映射的最小值和最大值,这里设置为800和50000min_=800,max_=50000,# 设置视觉映射的文本范围,这里设置为"High"和"Low"range_text=["High", "Low"],# 设置视觉映射是否可计算,这里设置为 True 表示可以手动拖动滑块改变视觉映射的值is_calculable=True,# 设置视觉映射的颜色范围,这里设置为"lightskyblue"(浅天蓝色)、"yellow"(黄色)和"orangered"(橙红色)range_color=["lightskyblue", "yellow", "orangered"],),)
)# 渲染图表
c.render("人口密度地图.html")  # 将图表渲染为HTML文件
c.render_notebook()  # 在Notebook中显示图表

运行结果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/172812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebUI自动化学习(Selenium+Python+Pytest框架)001

开启另一篇学习之路_WebUI自动化 先来一波基础概念 1.自动化适合什么类型的项目: 重复性高,迭代频率高的回归测试。数据量大、手工难以实现的压力测试&#xff0c;手工执行效率低的兼容测试 2.自动化的优点: 高效率、可重复、减少人为错误、克服手工测试的局限性 3.自动化…

光线追踪-Peter Shirley的RayTracingInOneWeekend系列教程(book1-book3)代码分章节整理

自己码完了一遍了&#xff0c;把代码分章节整理了一下&#xff0c;可以按章节独立编译&#xff0c;运行, 也可以直接下载编译好的release版本直接运行。 项目地址&#xff1a; Github: https://github.com/disini/RayTracingInOneWeekendChaptByChapt ​ ​ ​ ​

Rust语言入门教程(八) - 引用与借用

上一章的内容中我们讨论了Rust的所有权系统&#xff0c;当我们不想移动值的所有权时&#xff0c;我们可以使用引用和借用&#xff0c;而这正是本章想要讨论的问题。 引用&#xff08;References&#xff09; 引用允许你访问或修改数据而无需获取数据的所有权。在 Rust 中&…

阿里云MQTT: 子设备上线流程

0. 背景 阿里云网关子设备上平台的资料很少。有些厂家直接配置每个子设备的DeviceSecret到网关里&#xff0c;显然太麻烦了&#xff01;我经过阅读阿里文档&#xff0c;发现有些简化的方法&#xff0c;更便于客户使用&#xff0c;因此分享给大家。 1. 主要信息片段 子设备 $…

基于springboot+mysql实现的小区物业管理系统

基于springbootmysql实现的小区物业管理系统,演示地址:登录 演示账号&#xff1a;用户名:744621980qq.com 密码:123456,主要包含房屋管理(楼栋管理&#xff0c;单元管理&#xff0c;房屋管理)&#xff0c;车位管理&#xff0c;缴费管理&#xff0c;社区服务( 公告管理&#xf…

Linux socket编程(6):IO复用之select原理及例子

文章目录 1 五种I/O模型1.1 阻塞I/O模型1.2 非阻塞I/O模型1.3 I/O复用模型1.4 信号驱动I/O模型1.5 异步I/O模型 2 select函数3 select实战&#xff1a;实现多个套接字监听3.1 客户端3.2 服务端3.3 实验结果3.4 完整代码 在之前的网络编程中&#xff0c;我们遇到了一个问题&…

Qt TCP网络上位机的设计(通过网络编程与下位机结合)

目录 TCP 协议基础 QTcpServer 和 QAbstractSocket 主要接口函数 TCP 应用程序 1.服务端 2.客户端 上位机通过网络编程与下位机实现通信 TCP 协议基础 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于…

mysql从库设置为只读

直奔主题&#xff0c;mysql设置为只读后&#xff0c;无法增删改。 设置命令&#xff1a; mysql> set global read_only1; #1是只读&#xff0c;0是读写 mysql> show global variables like %read_only%; 以下是相关说明&#xff1a; 1、对于数据库读写状态&#xf…

详解RT-DETR网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署

论文地址&#xff1a;RT-DETR论文地址 代码地址&#xff1a;RT-DETR官方下载地址 目录 一、本文介绍 二、RT-DETR的网络结构 2.1、模型概览 2.2、高效混合编码器 2.3、IoU感知查询选择 2.4、 可扩展的RT-DETR 三、RT-DERT的环境搭建 四、免费数据集获取 五、获取RT-D…

爬楼梯(力扣LeetCode)动态规划

爬楼梯 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1 阶 1 阶2 阶 示…

使用python 实现华为设备的SFTP文件传输

实验目的&#xff1a; 公司有一台CE12800的设备&#xff0c;管理地址位172.16.1.2&#xff0c;现在需要编写自动化脚本&#xff0c;通过SFTP实现简单的上传下载操作。 实验拓扑&#xff1a; 实验步骤&#xff1a; 步骤1&#xff1a;将本地电脑和ensp的设备进行桥接&#xff…

菜单的hover不同动画背景

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

SWT/Jface(3): 表格中添加超链接

背景 实际业务中经常需要展示某个网站, 并且希望在展示的时候单击网站可直接访问, 本节演示在表格中如何添加超链接支持. 需求 假设我需要渲染一个Study类, 它只有三个属性id,name和website, 其中id只支持展示, name只支持编辑, 而website只支持单击时跳转到相应的网站, 效果…

Linux7设置ssh秘钥登录并关闭密码登录

说明&#xff1a;场景为windows使用WinScp远程登录linux服务 winscp安装教程&#xff1a;winscp安装及关联putty使用_putty.exe没有找到_cherishSpring的博客-CSDN博客 1.在window上生成公钥和秘钥&#xff0c;操作方式参考以下文章第3点&#xff1a; git关联云效使用教程_云…

Ps:使用钢笔工具绘制自由路径的技巧

只有熟练掌握使用钢笔工具绘制自由路径的技巧&#xff0c;才能快速完成复杂形状的创建以及精准抠图等工作。 钢笔工具是 Photoshop 中绘制路径的主要工具。无论是直线路径还是曲线路径&#xff0c;钢笔工具都能够提供高度的控制和精确度。 ◆ ◆ ◆ 绘制直线路径 绘制直线路径…

下载网页内容成HTML文件

今天遇到了一个非常好用的、开源的网页下载插件: SingleFile&#xff0c;它可以将当前网页里的文字、图片、超链接等&#xff0c;合并成单一的.html文件&#xff0c;便于保存和浏览查看。下面介绍SingleFile的安装和使用。 1、下载SingleFile插件 SingleFile官网地址&#xff…

高并发系统:它的通用设计方法是什么?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 我们知道&#xff0c;高并发代表着大流量&#xff0c;高并发系统设计的魅力就在于我们能够凭借自己的聪明才智设计巧妙的方案&#xff0c;从而抵抗巨大流量的冲击&#xff0c;带给用户更好的使用体验。这些方案好似能…

Mybatis-Plus 租户使用

Mybatis-Plus 租户使用 文章目录 Mybatis-Plus 租户使用一. 前言1.1 租户存在的意义1.2 租户框架 二. Mybatis-plus 租户2.1 租户处理器2.2 前置准备1. 依赖2. 表及数据准备3. 代码生成器 2.3 使用 三. 深入使用3.1 前言3.2 租户主体设值&#xff0c;取值3.3 部分表全量db操作3…

【古诗生成AI实战】之三——任务加载器与预处理器

本章内容属于数据处理阶段&#xff0c;将分别介绍任务加载器task和预处理器processor。 [1] 数据集 在深入探讨数据处理的具体步骤之前&#xff0c;让我们先了解一下我们将要使用的数据集的形式。 本项目采用的是七绝数据集&#xff0c;总计83072条古诗&#xff0c;其形式如下&…

大语言模型损失函数详解

我们可以把语言模型分为两类&#xff1a; 自动回归式语言模型&#xff1a;自动回归式语言模型在本质上是单向的&#xff0c;也就是说&#xff0c;它只沿着一个方向阅读句子。正向&#xff08;从左到右&#xff09;预测&#xff1b;反向&#xff08;从右到左&#xff09;预测。…