地图可视化:geopandas绘制拓扑着色地图

【数据分析必学】一文精通mapclassify:专业空间数据分类技术与地图可视化实战指南 分类方法适用场景优点缺点等间距分类均匀分布数据;多地图比较简单易懂;便于比较对偏斜数据效果差分位数分类偏斜分布;确保每类样本量相等无空类别;稳定可能合并不同特征;难以比较自然断点分类存在自然分组;单地图展示反映数据结构;视觉效果好计算复杂;难以比较标准差分类正态分布;偏差分析统计意义明确不适合非正态分布大数据集;存在自然分组优化的断点算法;效果好计算开销大头尾分割法极端偏斜;长尾分布突显高值类别数不固定用户自定义特定阈值;政策分析完全可控。 阅读详情
❝

本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes

❞

1 简介

我们在绘制某些地图时,为了凸显出每个独立的区域,需要满足拓扑着色要求,即所有相邻的区域不可以用同一种颜色绘制,以前的手绘地图需要绘制者自行思考设计具体的着色规则,而现如今通过计算机的辅助,我们可以快速生成大量的着色方案。

今天我们就来学习配合geopandas如何快速实现地图的拓扑着色。

c73d75283581665211817e88b82467c1.png

2 基于mapclassify的地图拓扑着色

对于着色方案的生成,我们需要使用到mapclassify这个第三方库,以前我的geopandas系列文章分层设色篇也介绍过其中的诸多功能,而本文需要使用到其特殊的greedy功能。

以中国县级单元矢量边界数据为例,它包含了共2900个县级单元的行政区划面矢量要素:

de89cd4659965d46bc65c70e2cc84521.png

对于这样一个典型的面要素众多的地图,利用mapclassify.greedy(),我们可以基于面要素之间的邻接拓扑关系,快速生成一定配色数量的方案出来,greedy()的主要参数如下:

  • gdf:GeoDataFrame型,用于传入待处理的地理数据框

  • strategy:str型,用于设定拓扑着色所采取的具体策略,默认为balanced(这也是QGIS中拓扑着色所使用的方法),其余可选策略有'largest_first'、'random_sequential'、'smallest_last'、'independent_set'、'connected_sequential_bfs'、'connected_sequential_dfs'、'connected_sequential'、'saturation_largest_first'、'DSATUR'等,详细介绍见https://networkx.github.io/documentation/stable/reference/algorithms/generated/networkx.algorithms.coloring.greedy_color.html

  • balance:str型,当strategy='balanced'时,用于设定如何进行“平衡”着色,默认为'count',可选项如下,其中除了'count'方式以外,其余方式均需要输入的GeoDataFrame为投影坐标系:

    • count:尽量保持每种颜色对应的面要素数量平衡

    • area:尽量保持每种颜色对应的面要素面积之和平衡

    • centroid:尽量保持每种颜色对应的面要素之间「重心距离」平衡

    • distance:尽量保持每种颜色对应的面要素之间「拓扑距离」平衡

  • min_colors:int型,当strategy='balanced'时,用于设置色彩方案「至少」的色彩数量,最后运算产生的色彩划分结果可能会大于这个参数

  • sw:str型,用于设定拓扑邻接关系判定策略,'rook'表示「共边邻接」,'queen'表示「共点邻接」,默认为'queen'

  • min_distance:数值型,默认为None,有时由于数据质量、精度的原因,可能会导致肉眼看起来的邻接实际上仍然存在一定的“间距”,这时就可以使用min_distance参数来设定距离阈值来帮助greedy捕捉相邻面要素关系,即面要素两两之间拓扑距离小于min_distance时也视作“邻接”

知晓了greedy()的主要参数后,我们下面来演示如何使用它来辅助制作拓扑着色地图。

首先我们需要向greedy()中传入对应的面要素GeoDataFrame,greedy()会根据我们的参数设定为每一个面生成一个标签,我们只需要将此标签列作为绘图着色映射列即可,可以看到最终得到的标签方案中共有7种不同标签,虽然按照四色问题的猜想,任何拓扑着色地图只需要4种颜色即可完成色彩填充,但在有限的计算时间内,greedy()给出了还不错的方案:

1387355f549c4d8b33beaf20df36a43f.png

按照标签进行颜色分配:

3dd112e8531b6146f176125c4c6abe28.png

放大仔细发现,每个邻接的区域的确实现了颜色不重合:

d2db8d2689469082fb12d4aa3d34c2ee.png

而如果你希望用自定义色彩值来配合标签字段进行映射,则可以参考我下面的做法,将具体的颜色值譬如16进制色彩字符串传入color参数,这里使用到以前介绍过多次的配色库palettable:

31e7246ce079fe69f62b2f80a66213ed.png

以上就是本文的全部内容,欢迎在评论区与我进行讨论~

觉得还不错就给我一个小小的鼓励吧!
geopandas geopandas相关使用 阅读详情

相关推荐

python三维图形渲染 地图_Python地图可视化之GeoPandas

GeoPandas简介GeoPandas是一个开源项目,它的目的是使得在Python下更方便的处理地理空间数据。GeoPandas扩展了pandas的数据类型,允许其在几何类型上进行空间操作。几何操作由shapely执行。GeoPandas进一步依赖于fiona进行文件存取和descartes,matplotlib进行绘图。GeoPandas沿用了pandas的数据类型,所以GeoPandas中也...

weixin_35971787的博客 1276

Py之mapclassify:mapclassify的简介、安装、使用方法之详细攻略

​ Py之mapclassify:mapclassify的简介、安装、使用方法之详细攻略 目录 mapclassify的简介 mapclassify的安装 mapclassify的使用方法 mapclassify的简介 mapclassify,Classification Schemes for Choropleth Maps,是一个用于生成分级统计地图的分类方法库,其主要关注点是确定分类数量以及将观测值分配到各个分类中。它旨在与处理地图渲染的上游地理数据处理包(如geopandas

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 2326

Python绘制中国地图:Cartopy与GeoPandas工具选型与实战指南

地理信息可视化是数据分析与商业智能中的关键技术,它通过将数据映射到地理空间,帮助用户直观理解区域分布与模式。其核心原理在于坐标参考系统与地图投影,确保球面数据在平面上的准确表达。在Python生态中,Cartopy凭借其强大的投影转换能力与Matplotlib的无缝集成,成为专业地理绘图的首选;而GeoPandas则以其类似Pandas的数据操作接口,擅长地理空间数据的处理与分析。两者的结合,既能高效处理行政区划数据,又能实现出版级的地图渲染,为区域经济分析、疫情分布可视化等场景提供了强大的技术支撑。本文聚

weixin_30698527的博客 393

探索地图分类的艺术:mapclassify库解析与应用

探索地图分类的艺术:mapclassify库解析与应用 在数据可视化的世界里,地图是展示地理信息的强大工具。其中, choropleth(色阶)地图通过颜色的差异来表示区域之间的数据差异,尤为引人注目。mapclassify,一个Python库,正是专为这种地图设计的一系列分类方案,它将复杂的统计学和地理信息系统理论简化为易于操作的代码。 项目简介 mapclassify是一个专注于确定 chor...

gitblog_00033的博客 612

Python+GeoPandas实战:5分钟搞定GIS地图绘制与空间分析(附完整代码)

本文通过Python的GeoPandas库,详细介绍了如何快速实现GIS地图绘制与空间分析。从环境配置、数据加载到专业地图可视化和空间分析实战,提供了完整的代码示例和实用技巧,帮助开发者高效处理地理空间数据。

weixin_30897233的博客 376

BaseMap地理可视化:离线可控的科研级地图绘制方案

地理可视化是空间数据分析的关键环节,其核心在于坐标系转换、投影渲染与静态输出的确定性。BaseMap作为Matplotlib生态中专为科学计算设计的地图工具包,不依赖网络、不调用外部API,以纯Python方式完成WGS84/兰伯特等投影下的shapefile加载、等值线填充、高分辨率PNG/SVG导出,天然适配科研论文插图、内网工业监控、GIS教学演示及CLI自动化制图等强可控场景。相比Leaflet或Mapbox等Web地图库,BaseMap更强调地理坐标的可复现性与绘图过程的完全透明,是离线环境、国产

weixin_30522983的博客 182

用Python可视化四色定理:从图论到实际地图着色教程

本文提供了一个使用Python实现四色定理的完整教程,涵盖从地理数据构建图论模型到实际地图着色的全过程。通过NetworkX、Shapely和Matplotlib等库,详细讲解了邻接关系构建、回溯与贪心着色算法,并实现可视化,为GIS开发与数据分析提供实用解决方案。

weixin_29230649的博客 608

Py之mapclassify:详解mapclassify的安装与使用

此外,mapclassify还提供了一些辅助函数,如调整分类数目的方法(调用方式为。本文将带你深入了解mapclassify的安装和使用,并且提供详细的代码和描述。mapclassify是基于Python的开源数据分类工具包,它可以将数据离散成多个类别,且每个类别包含的数据数量是相等的。这个工具包是建立在pysal包的基础之上的,所以在安装之前需要先安装pysal。总之,mapclassify是一个非常实用的数据分类工具包,能够帮助我们快速而准确地对数据进行离散化处理。希望本文对初学者有所帮助。

BUG?不存在的! 616

基于Geopandas的地理空间数据可视化与分析方法研究

Geopandas还支持通过自定义样式来调整地图的外观。例如,可以更改州的颜色、边界样式等。# 使用自定义颜色和边界plt.show()Geopandas是一个功能强大的库,能够轻松实现地理空间数据的读取、处理、分析和可视化。结合matplotlibfolium和plotly等库,Geopandas可以满足从静态地图到动态交互式地图的各种需求。通过本文的示例,希望你能掌握一些常见的地理空间数据处理和可视化技巧,进一步提升对地理数据的分析能力。

一键难忘的博客 3322

mapclassify:拟人映射的分类方案

mapclassify:Choropleth映射的分类方案 mapclassify为Choropleth映射实现了一系列分类方案。 它的重点是确定类别数,以及将观察值分配给这些类别。 它旨在与处理地图渲染的上游制图和地理可视化程序包(请参阅和 )一起使用。 有关进一步的理论背景,请参见 。 使用mapclassify 加载内置示例数据,报告加州58个县的就业密度: >> > import mapclassify >> > y = mapclassify . load_example () >> > y . mean () 125.92810344827588 >> > y . min (), y . max () ( 0.13 , 4111.4499999999998 ) 支持的地图分类器 箱形图 >> > mapclassify . BoxPlot ( y ) BoxPlot

手机如何高效辅助林业调查

手机如何高效辅助林业调查 很多林业工作者将栅格类型的地形图处理后导入平板电脑,在林地使用平板电脑加载小班矢量图,辅助林业调查。但是,如果没有地形图底图,这种方法可能就有难度,而且最重要的是,大部分林地工作者没有能力配置平板电脑。大凡林业基层工作者在林地调查时,除调查记录本等部分纸质材料外,都必然携带手机和水杯,此外其他设备已经成为累赘,尤其是炎热的夏季在杂灌丛生的林地进行调查作业。因此,使用手机...

xu780820的博客 3079

python中国地图代码 上色_python绘制中国地图

import geopandasimport pandas as pdimport geopandas as gpimport matplotlib.pyplot as pltprovince_city = pd.read_csv("F:/rstudy/chinaprovincecity.csv", encoding = 'gb18030')china_map=gp.GeoDataFrame.fr...

weixin_33268861的博客 2524

【Matlab/Unity】跨平台UDP通信实战:从数据发送到实时可视化

本文详细介绍了Matlab与Unity之间通过UDP协议实现跨平台通信的实战方法,涵盖数据发送、接收和实时可视化全流程。针对科研仿真和工业设计场景,提供优化代码示例和性能对比数据,帮助开发者解决低延迟传输、线程安全等关键问题,显著提升跨平台协作效率。

weixin_29044713的博客 155

python可视化教程 geoplot_GeoPandas入门 | 05-Python可视化空间数据

05-Python可视化空间数据源代码请看此处%matplotlib inlineimport pandas as pdimport geopandasimport matplotlib.pyplot as pltcountries = geopandas.read_file("zip://data/ne_110m_admin_0_countries.zip")cities = geopandas...

weixin_39614528的博客 1840

从踩坑到填平:我在RHEL7上给Tesla A100装驱动的完整记录(含Fabric Manager配置)

本文详细记录了在RHEL7系统上为Tesla A100安装Nvidia驱动的完整过程,包括Fabric Manager配置的关键步骤。通过分析A100架构的特殊性,提供了从驱动安装到服务配置的详细指南,并分享了常见问题的排查方法和性能调优技巧,帮助用户高效部署高性能GPU计算环境。

weixin_29291863的博客 285

Android 车载开发深度解析:CarPropertyManager 核心机制与实践指南

摘要: Android Automotive OS中,CarPropertyManager作为车载信息娱乐系统的核心组件,连接应用层与车辆硬件(如车速、油量等),其架构基于分层设计(App→CarAPI→VHAL→ECU),采用发布-订阅模式实现高效数据通信。通过HIDL/AIDL跨进程交互及共享内存优化,延迟可降至2ms以下。安全机制包括分级权限控制(VISIBLE/PROTECTED/SYSTEM_RESTRICTED)和HMAC防篡改。开发时需注意监听器生命周期管理、事件合并降负载及低功耗适配。

郑伟强dev的专栏 344

使用 plotly 绘制 geopandas 数据框

geojson`参数指定了我们想要绘制的地理形状,`locations`参数指定了我们希望在地图上显示的点的索引,`color`参数指定了我们将根据哪个列来着色,`hover_name`参数指定了我们想要在鼠标悬停时显示的信息列,`projection`参数指定了我们使用的地图投影。gdf = gpd.read_file('path_to_your_shapefile') # 替换为你的shapefile的路径。首先,你需要确保你的环境中已经安装了`geopandas`和`plotly`库。

407

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

Python+GeoPandas世界地图按国家着色:数据清洗、分级与避坑指南

数据可视化中,分级统计图通过颜色深浅映射数值大小,是揭示地理分布规律的核心手段。其原理是将连续数值离散为可读色阶,结合地理边界数据实现空间关联。技术价值在于将抽象数据转化为直观洞察,广泛应用于公共卫生、经济指标、人口统计等领域。实现时需解决数据清洗、国家名映射、分级策略与缺失值处理等工程问题。本文以Python的GeoPandas和Matplotlib为例,详解从数据到成图的完整流程,涵盖分位数分级、色带选择及常见问题排查,助你快速掌握按国家着色的地图可视化技能。

weixin_28235513的博客 144

【华为OD机试真题 新系统】1021、API请求日志去重分析 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1021、API请求日志去重分析 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备

KJ.JK 147

基于 YOLOv8 的自动驾驶车辆障碍物检测与避障路径规划

本文探讨基于YOLOv8的自动驾驶车辆障碍物检测与避障路径规划系统。在感知层面,采用YOLOv8模型实现多类别障碍物识别,结合单目视觉距离估计和ByteTrack多目标跟踪算法,完成障碍物的稳定检测与运动状态估计。在路径规划层面,设计分层规划架构,融合全局路径规划与局部避障算法,重点实现Frenet坐标系下的采样优化算法和基于模型预测控制的实时避障轨迹生成。通过完整的代码实现与仿真实验,验证系统在复杂交通场景下的有效性与实时性,为自动驾驶开发者提供从理论到实践的完整技术参考。 关键词:YOLOv8;自动驾驶

huanghm88的专栏 254

folium 中使用 GeoPandas GeoDataFrame 与 __geo_interface__ 渲染地图的完整指南

本文基于 folium 官方用户指南([geopandas_and_geo_interface.md](https://link.gitcode.com/i/67d0c6966b5291e7abf6428576550efb)),系统讲解如何把 GeoPandas 的 `GeoDataFrame` 以及任何实现了 `__geo_interface__` 协议的对象直接渲染到 folium 地图上。你

gitblog_01067的博客 845

论文必备 - YOLOv11热力图可视化,支持指定模型,指定显示层,设置置信度,以及10种可视化实现方式

本文带来的是YOLOv11热力图可视化功能,支持,以及。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。

Limiiiing的博客 5506

GeoPandas 进行真正的地理空间可视化

【代码】GeoPandas 进行真正的地理空间可视化。

gis收藏家的博客 363

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

用什么工具可以绘制数据地图?这几款数据可视化工具免费又好用,你一定要试试

除了有折线图、柱状图等80余种常规图表模板,还设置了有迁徙图、各省份图两种中国地图,以及广东省各市数据图、上海市各区数据图、北京市各区数据图、浙江省各市数据图、香港18区数据图这几个省市区图,还提供了丰富自由的图表颜色修改方案,可帮助你轻松绘制美观专业的地图热力图。它提供直观的图形界面,支持多种地理数据格式(如Shapefile、GeoJSON、PostGIS),并可通过插件系统扩展功能,如地形分析、地图打印、网络服务发布等。支持热力图、符号地图、区域着色等多种表现形式,并可与其他图表联动分析。

2501_90295161的博客 1409

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

GeoPandas 入门实战指南:地图数据加载、CRS 投影变换与空间连接

GeoPandas 是 Python 生态中最常用的地理空间数据扩展库,它在 pandas 的基础上增加了几何对象(Point、LineString、Polygon 等)与坐标参考系(CRS)支持,让地图绘制、投影变换和空间分析可以像操作普通 DataFrame 一样自然。本文基于当前仓库 `materials` 中 [geopandas-basics](https://link.gitcode.

gitblog_00164的博客 148
上一篇: 吴恩达的2021回顾,这些大事件影响了AI这一年
下一篇: 这个神奇的库,可以将数据平滑化并找到异常点
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值