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 ​ ​ ​ ​

17 Go的文件操作

概述 在上一节的内容中&#xff0c;我们介绍了Go的反射&#xff0c;包括&#xff1a;reflect.TypeOf、reflect.ValueOf、reflect.Value等。在本节中&#xff0c;我们将介绍Go的文件操作。在Go语言中&#xff0c;文件是一个抽象的概念&#xff0c;表示的是一段连续的字节序列。文…

iframe实现跨域通信的方法

在前端开发中&#xff0c;我们经常会遇到跨域通信的问题。跨域通信是指在浏览器的同源策略下&#xff0c;不同源之间的通信。本文将介绍如何通过 iframe 实现跨域通信&#xff0c;以及不跨域通信的方法和代码示例。 引言 跨域通信是指在浏览器的同源策略下&#xff0c;不同源之…

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

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

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

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

屏蔽WordPress评论中长URL地址方法

由于WordPress是比较常见的CMS程序之一&#xff0c;所以很多网络营销推广也会基于WP去群发外链和广告信息。这里&#xff0c;我们可以通过屏蔽特定关键字、屏蔽特定字符的方式&#xff0c;或者是屏蔽评论内容的长短来限制评论。还有一个我们可以通过评论内容的URL地址的长度来屏…

基于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;我们遇到了一个问题&…

CentOS7 安装配置SFTP服务器详解

1、SFTP简介 SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FTP或字母缩写:SFTP)是一种数据流连接,提供文件访问、传输和管理功能的

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…

Linux基本命令一

Linux基本命令一 1、mkdir 命令 mkdir ​ **作用&#xff1a;**命令用来创建指定的名称的目录&#xff0c;要求创建目录的用户在当前目录中具有写权限&#xff0c;并且指定的目录名不能是当前目录中已有的目录 ​ **语法&#xff1a;**mkdir [选项] 目录 ​ **命令功能&am…

【Android知识笔记】性能优化专题(三)

App 布局优化 绘制原理 CPU 负责计算显示内容GPU 负责栅格化(UI元素绘制到屏幕上)每 16ms 发出 VSync 信号触发 UI 渲染,代码必须保证在16ms内绘制完毕大多数的Android设备屏幕刷新频率:60Hz(人眼分辨的极限)大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性…

爬楼梯(力扣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只支持单击时跳转到相应的网站, 效果…

Java面试准备

计算密集型&#xff1a;这一类主要是在线程中&#xff0c;按照数学公式&#xff0c;大量求和、求平均、求平方等等操作&#xff0c;这样的任务&#xff0c;大部分需要依赖CPU的计算能力来处理&#xff0c;我们设置线程数一般是&#xff1a;计算机核数n1。 IO密集型&#xff1a;…