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

如何在Plotly Express散点图中为指定点设不同颜色并加图例

解决方案

要实现指定导演的高亮显示、自定义颜色及图例标注,你可以通过给数据集新增分组列、配置颜色映射的方式完成,具体步骤如下:

1. 给数据集添加分组标识列

在数据框中新增一列,用来区分「要高亮的导演」和「其他导演」,且给每个高亮导演单独标记,让Plotly能自动生成对应的图例项:

# 新增分组列:高亮导演用自身名字标识,其余归为"其他导演"
BudProfDirectorDF['highlight_group'] = BudProfDirectorDF['primary_name'].apply(
    lambda x: x if x in DirectorsToHighlight else '其他导演'
)

2. 定义自定义颜色映射

创建颜色字典,给每个目标导演指定专属颜色,同时给普通导演设置默认颜色:

# 自定义颜色映射,可根据喜好修改色值
color_map = {
    'Pierre Coffin': '#FF6B6B',  # 珊瑚红
    'Chris Renaud': '#4ECDC4',   # 薄荷绿
    'Kyle Balda': '#FFE66D',     # 柠檬黄
    'Zack Snyder': '#1A535C',    # 深青蓝
    'Christopher Nolan': '#7B435B', # 紫褐
    'Joe Russo': '#2ECC71',      # 你要求的绿色
    '其他导演': '#95A5A6'        # 灰色
}

3. 生成带高亮效果的散点图

调用px.scatter时,通过color参数绑定分组列,并用color_discrete_map传入自定义颜色配置:

BudProfDirector = px.scatter(
    BudProfDirectorDF,
    x='production_budget',
    y='Worldwide_Profit',
    hover_name='primary_name',
    color='highlight_group',  # 按分组列区分颜色
    color_discrete_map=color_map,  # 应用自定义颜色
    title='导演制作预算 vs 全球利润'  # 可选:添加图表标题
)

# 可选:调整图例位置,避免遮挡数据点
BudProfDirector.update_layout(legend=dict(orientation='h', yanchor='bottom', y=1.02, xanchor='right', x=1))

# 渲染图表
BudProfDirector.show()

效果说明

  • 所有在DirectorsToHighlight列表中的导演,散点会显示你指定的专属颜色,图例中会单独列出他们的名字和对应色标
  • 其余导演的散点统一显示灰色,图例中归为「其他导演」
  • 悬停交互保留原有逻辑,依然会显示导演名称

内容的提问来源于stack exchange,提问作者Undergraduate Mathy Boi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:20:34