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

如何在Plotly箱线图的指定箱形上叠加单个数据点?

在Plotly箱线图上叠加指定数据点

要在指定箱形上叠加单个数据点,核心是明确每个箱线图对应的y轴位置就是它的trace索引(从0开始计数)——因为你没有给go.Box指定y参数时,Plotly会自动按trace顺序为每个箱形分配y轴位置,第一个箱形对应y=0,第二个y=1,依此类推。

基于这个逻辑,你可以通过添加scatter trace实现叠加,修改后的代码如下:

import plotly.graph_objects as go
import numpy as np

N = 10

# 生成箱线图数据并保存原始数据(方便后续选点)
box_data = []
for i in range(N):
    x_vals = 2.5 * np.sin(np.pi * i/N) + i/N + (1.5 + 0.5 * np.cos(np.pi*i/N)) * np.random.rand(10)
    box_data.append(x_vals)

fig = go.Figure(data=[go.Box(x=vals) for vals in box_data])

# 示例:在第3个箱形(索引为2,从0开始计数)上叠加一个数据点
target_box_index = 2
# 这里用该箱形的最大值作为示例,可替换为任意自定义x值
point_x = np.max(box_data[target_box_index])

# 添加散点trace
fig.add_trace(go.Scatter(
    x=[point_x],
    y=[target_box_index],  # y值对应目标箱形的trace索引
    mode="markers",
    marker=dict(size=12, color="red"),  # 设置点样式,突出显示
    showlegend=False  # 不显示该散点的图例
))

fig.update_layout(height=600)
fig.show()

补充说明:

  • 若要在多个箱形上叠加点,可一次性传入多组x、y值,比如x=[x1, x2]、y=[index1, index2],无需多次调用add_trace。
  • 叠加的点的x值可以是任意自定义数值,不局限于箱形的原始数据,按需调整即可。
  • 通过修改marker的size、color、symbol等参数,可调整点的外观,让叠加效果更符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:10:30