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

Plotly中如何基于数值更改Scatter Mapbox聚类颜色?

解决方案:让Plotly Scatter Mapbox聚类颜色随簇内字段动态调整

要实现聚类颜色随簇内scaled字段的数值动态调整,你可以利用Plotly Mapbox聚类的聚合表达式功能,直接基于簇内数据的统计值(如均值、中位数)计算颜色,同时复用原始散点的颜色轴保证色系一致。

修改后的代码

import plotly.express as px

fig = px.scatter_mapbox(
    df_clean,
    lat="lat",
    lon="long",
    color="scaled",
    size="number of reviews",
    color_continuous_scale="aggrnyl_r"
)

# 配置聚类使用簇内scaled字段的均值着色,复用主颜色轴
fig.update_traces(
    cluster=dict(
        enabled=True,
        color='mean(scaled)',  # 用簇内scaled的均值计算颜色,可替换为median/scaled等
        opacity=0.7,
        coloraxis='coloraxis'  # 绑定到图表的颜色轴,保证颜色刻度一致
    )
)

# 可选:手动锁定颜色轴范围,和原始数据匹配,避免聚类颜色偏移
scaled_min = df_clean['scaled'].min()
scaled_max = df_clean['scaled'].max()
fig.update_layout(coloraxis=dict(range=[scaled_min, scaled_max]))

关键说明

  • 聚合表达式支持mean(field)、median(field)、sum(field)等统计函数,你可以根据需求选择最适合的聚合方式(比如用中位数避免极端值干扰)。
  • coloraxis='coloraxis'是核心参数,它让聚类的颜色使用和单个散点完全相同的颜色刻度,确保聚类颜色和散点颜色在同一个色系体系内,视觉上保持统一。
  • 如果不指定coloraxis,聚类可能会使用独立的颜色范围,导致颜色和原始散点不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:15:32