使用Geoplot固定分箱配色 实现多幅地图相同数值对应相同颜色
多地图相同数值统一配色修复方案
问题核心:色阶映射未全局固定,单张地图生成时会自动适配当前数据的极值范围,导致相同数值落入不同分箱区间,对应颜色发生变化。按以下步骤修改即可解决:
- 提前全局定义统一的分箱阈值、色盘参数,所有地图生成时复用同一组规则,避免参数依赖单张地图的当前数据
- 在
gplt.choropleth中添加vmin、vmax参数锁定色阶上下边界,禁止动态适配单图数据范围 - 若存在超出设定区间的异常值,可补充设置区间外的颜色映射规则,避免异常值打乱整体配色
修改后的可运行代码示例:
# 全局统一配置,所有地图复用,需调整规则时仅修改此处即可 # 分箱数量要和色盘颜色数量一一对应 FIXED_BINS = [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500] FIXED_CMAP = ListedColormap(['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']) # 可选配置:设定超出上下限的数值对应的颜色 # FIXED_CMAP.set_over('#000000') # FIXED_CMAP.set_under('#ffffff') # 单张地图生成逻辑 fig, ax = plt.subplots(1, figsize=(20, 20)) ax.axis('off') Scheme = mc.UserDefined(data[field], bins=FIXED_BINS) gplt.choropleth( data, hue=data[field], linewidth=0.5, scheme=Scheme, legend=True, cmap=FIXED_CMAP, ax=ax, vmin=FIXED_BINS[0], vmax=FIXED_BINS[-1] ) plt.savefig(file_path+field+'.pdf') plt.close()
内容的提问来源于stack exchange,提问作者Carina
相关产品推荐
相关产品推荐

