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

如何为Plotly的go.Splom散点矩阵悬停标签添加对应列名

go.Splom 散点矩阵悬停标签添加列名解决方案

方法1:使用内置占位符(推荐,Plotly v4.10及以上版本支持)

go.Splom 已经内置了两个专属的悬停占位符:

  • %{xlabel}:当前子图X轴对应维度的label值,即你配置的列名
  • %{ylabel}:当前子图Y轴对应维度的label值

直接在go.Splom的hovertemplate参数中引用即可,修改后代码如下:

eval_columns = ['col1', 'col2', 'etc']
fig = go.Figure(data=go.Splom(
            dimensions=[dict(label=col, values=df[col]) for col in eval_columns],
            showupperhalf=False,
            text=df['col3'],
            marker=dict(color=df['col3'],
                        showscale=False, 
                        line_color='white', line_width=0.5),
            # 新增悬停模板配置
            hovertemplate="""
<b>%{xlabel}</b>: %{x}<br>
<b>%{ylabel}</b>: %{y}<br>
<b>分组col3</b>: %{text}<extra></extra>
"""
            ))

末尾的<extra></extra>用于删除悬停标签默认的Trace标识,你可以根据业务需要调整标签的展示内容、格式。

方法2:低版本兼容方案

如果你使用的Plotly版本不支持上述占位符,可以通过生成图表后批量更新子图悬停逻辑实现:

  1. 先完成go.Splom的基础配置生成图表
  2. 遍历所有子图的X、Y轴,获取对应绑定的列名
  3. 逐个更新子图的悬停模板

示例代码如下:

eval_columns = ['col1', 'col2', 'etc']
fig = go.Figure(data=go.Splom(
            dimensions=[dict(label=col, values=df[col]) for col in eval_columns],
            showupperhalf=False,
            text=df['col3'],
            marker=dict(color=df['col3'],
                        showscale=False, 
                        line_color='white', line_width=0.5),
            ))

# 批量更新子图悬停模板
n_dim = len(eval_columns)
base_template = """
<b>{x_col}</b>: %{x}<br>
<b>{y_col}</b>: %{y}<br>
<b>分组col3</b>: %{text}<extra></extra>
"""
fig.data[0].hovertemplate = [
    [base_template.format(x_col=eval_columns[j], y_col=eval_columns[i]) if i!=j else "" for j in range(n_dim)] 
    for i in range(n_dim)
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:48:03