Python中Geopandas地图自定义颜色映射未正确显示问题
Geopandas地图颜色不符合预期的解决办法
问题原因
你用plot(column='color')时,Geopandas不会直接使用color列里的颜色字符串,而是把这些字符串当作分类标签,自动从默认色盘分配颜色,这就是红黄绿配色没生效的原因。
解决方法一:直接传入颜色列表
不用把颜色存为列,生成颜色列表后直接传给color参数:
def color_mapping(row): if row['pedidos_venta'] > 10000: return 'green' elif row['pedidos_venta'] > 2000: return 'yellow' else: return 'red' # 生成对应每个要素的颜色列表 colors = mapa_pedidos_venta.apply(color_mapping, axis=1).tolist() # 用color参数指定颜色,而非column mapa_pedidos_venta.plot(color=colors)
解决方法二:基于数值列自定义颜色映射
直接用pedidos_venta数值列,配合自定义色盘和分界规则:
import matplotlib.colors as mcolors # 定义颜色和分界点 custom_cmap = mcolors.ListedColormap(['red', 'yellow', 'green']) value_bounds = [0, 2000, 10000, float('inf')] norm = mcolors.BoundaryNorm(value_bounds, custom_cmap.N) # 基于数值列绘图,应用自定义映射 mapa_pedidos_venta.plot(column='pedidos_venta', cmap=custom_cmap, norm=norm)
内容的提问来源于stack exchange,提问作者CLT
相关产品推荐
相关产品推荐

