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

如何修改Plotly散点矩阵图的图例标签与维度名称

散点矩阵图标签自定义实现方案

常见踩坑说明

此前用字典重标注出现图表异常,核心原因是Plotly Express 的散点矩阵(scatter_matrix)组件,不支持用嵌套字典格式在labels参数中映射分类字段的具体类别值。很多人会套用普通散点图的写法,在labels里写类似labels={"Q11_Ans": {"1": "Mystery", "2": "Science"}}的嵌套结构,这种写法对普通散点、折线图生效,但传入scatter_matrix时会出现标签错位、显示混乱的问题,就是之前尝试失败的核心原因。


分步实现修改需求

1. 自定义每个子图的维度标签

直接在调用px.scatter_matrix时,通过扁平结构的labels参数传入字典,把原始字段名映射成需要展示的文本即可,对应映射关系:

  • Q12_Spicy 对应显示文本 Spicy
  • Q12_Sav 对应显示文本 Savory
  • Q12_Sweet 对应显示文本 Sweet

2. 修改右侧颜色分类图例的显示文本

针对图例的类别值替换,推荐两种稳定实现方式,避免图表异常:

  • 方式一(推荐):绘图前对分类列做文本映射,把原始值1、2替换成目标文本,直接让color参数读取映射后的分类值,从根源上避免图例显示原始数字。
  • 方式二(不改动原始数据):图表生成完成后,遍历每个数据trace,手动修改trace的名称属性,同步更新图例的显示文本。

完整可运行代码

import plotly.express as px

# 方式一:提前映射图例显示文本(若不想改动原始df,可注释掉下面两行)
category_label_map = {1: "Mystery", 2: "Science"}
df["Q11_Ans"] = df["Q11_Ans"].map(category_label_map)

fig = px.scatter_matrix(
    df,
    dimensions=["Q12_Spicy", "Q12_Sav", "Q12_Sweet"],
    color="Q11_Ans",
    # 传入扁平结构的维度标签映射字典
    labels={
        "Q12_Spicy": "Spicy",
        "Q12_Sav": "Savory",
        "Q12_Sweet": "Sweet"
    }
)

# 不修改原始数据的话,追加下面的代码手动替换图例文本
# trace_name_map = {"1": "Mystery", "2": "Science"}
# for trace in fig.data:
#     trace.name = trace_name_map.get(trace.name, trace.name)

fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 09:45:04