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

如何设置Plotly Express choropleth地图颜色图例仅显示整数值

解决方法

方案1:强制连续色阶的图例显示整数

Plotly的颜色条支持自定义刻度格式,你只需要在原有代码的update_layout配置中新增coloraxis相关参数即可,修改后的代码片段如下:

fig.update_layout(
    margin={"r":0,"t":0,"l":0,"b":0},
    # 新增颜色图例配置
    coloraxis={
        "colorbar": {
            "tickformat": "d", # 格式符d表示强制显示十进制整数,自动过滤小数位
            # 可选:手动指定刻度值,完全匹配你的count取值范围,显示效果更可控
            "tickvals": [0, 1, 2, 3, 4]
        }
    }
)

该方案不需要修改原有数据和色阶逻辑,仅调整显示格式,适配所有整数数值的显示需求。

方案2:改用离散色阶(更适配离散计数场景)

你的count取值本身是0-4的离散整数,也可以直接改用离散色阶映射,从根本上避免连续色阶自动生成小数刻度的问题,修改逻辑如下:

  1. 先将数据中的counts列转为字符串类型,作为离散分类
  2. 绘制时指定离散色阶映射,可和原有Magma色阶的视觉效果保持一致
# 转换为离散分类
df['counts'] = df['counts'].astype(str)

fig = px.choropleth(data_frame=df, 
                    geojson=italy_regions_geo, 
                    locations='regions',
                    featureidkey='properties.NOME_REG',
                    color='counts',
                    # 匹配Magma色阶的离散颜色配置
                    color_discrete_map={
                        "0": "#FCFDBF",
                        "1": "#FDB28A",
                        "2": "#E65B69",
                        "3": "#AB257F",
                        "4": "#440A67"
                    },
                    scope="europe",
                   )

原由说明

默认情况下Plotly的连续色阶会根据数值范围自动拆分刻度,当数值范围较小时(比如0-4),自动计算的刻度步长会小于1,因此出现小数刻度;当数值范围≥5时,自动步长≥1,就不会显示小数。两种方案都可以彻底解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:39:04