You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用geopandas内置plot方法按指定列值对绘图进行颜色编码

问题解答

完全可以,geopandas的plot方法原生支持按照指定列的取值进行颜色编码,不需要自己写循环分组绘图,你的简洁写法思路是完全可行的,只需要调整参数即可。

1. 分类变量自定义颜色映射(匹配你现有循环的需求)

如果你要配色的列是离散分类值,且需要自定义每个类别对应的颜色,你可以参考以下写法:

import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 假设你已有自定义颜色映射字典 colors = {"分类A": "#ff0000", "分类B": "#00ff00", ...}
# 生成匹配分类顺序的自定义色卡
category_list = gdf["col"].unique()
custom_cmap = ListedColormap([colors[cat] for cat in category_list])

fig, ax = plt.subplots(1, figsize=(宽度, 高度))
gdf.plot(
    column="col",  # 指定用来做颜色编码的列
    cmap=custom_cmap,  # 传入自定义配色
    categorical=True,  # 声明该列为分类变量,使用离散颜色映射
    legend=True,  # 可选,是否显示图例
    ax=ax
)
plt.show()

2. 连续数值变量颜色映射

如果你要配色的列是连续数值类型,不需要额外处理,直接指定列名和cmap即可:

fig, ax = plt.subplots(1, figsize=(宽度, 高度))
gdf.plot(
    column="数值列名",
    cmap="viridis",  # 可替换为任意matplotlib支持的色卡名称或自定义色卡
    legend=True,
    ax=ax
)
plt.show()

注意:plt.subplots和gdf.plot的figsize参数顺序都是(宽度, 高度),如果你的参数写反了会导致画布比例不符合预期。

内容的提问来源于stack exchange,提问作者Olli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:06:00