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

Plotly Graph Objects实现点击数据点后持久显示数据标签的方法

实现Plotly点击多数据点保留标签显示

要实现点击多个数据点后同时保留它们的标签,你可以通过设置图表的点击模式、控制选中/未选中状态下的文本显示来实现,具体步骤和代码如下:

核心思路

  1. 开启多选点击模式:允许按住Ctrl点击选中多个数据点
  2. 控制标签显示逻辑:未选中的点隐藏标签,选中的点显示标签
  3. 可选:调整选中点的样式,让对比更清晰

完整代码示例

import plotly.graph_objects as go

# 示例数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 5, 3]
# 预生成每个点的标签文本
point_labels = [f"x: {xi}, y: {yi}" for xi, yi in zip(x, y)]

# 创建散点图,同时启用标记和文本模式
fig = go.Figure(
    go.Scatter(
        x=x,
        y=y,
        mode="markers+text",
        text=point_labels,
        textposition="top center",  # 标签显示在点上方
        # 初始状态隐藏所有标签
        textfont=dict(color="rgba(0, 0, 0, 0)"),
        marker=dict(size=8)
    )
)

# 配置点击模式为"事件+选择",支持多选
fig.update_layout(
    clickmode="event+select",
    hovermode=False  # 可选:关闭hover提示避免干扰
)

# 设置选中/未选中状态的样式
fig.update_traces(
    # 选中时:放大标记,显示标签
    selected=dict(
        marker=dict(size=12, color="#1f77b4"),
        textfont=dict(color="#ff7f0e", size=12)
    ),
    # 未选中时:恢复默认大小,隐藏标签
    unselected=dict(
        marker=dict(size=8),
        textfont=dict(color="rgba(0, 0, 0, 0)")
    )
)

fig.show()

使用说明

  • 点击单个数据点:该点的标签会显示出来
  • 按住Ctrl点击多个数据点:所有选中的点都会保留标签,方便对比
  • 再次点击已选中的点:取消选中,标签隐藏

这个方案直接利用Plotly内置的交互能力,无需额外的回调或复杂逻辑,完全基于Graph Objects实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:56:11