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

如何在Plotly的hovermode='x unified'模式下重排序悬浮框信息

调整Plotly统一悬浮框的trace顺序方案

Plotly的x unified模式下,悬浮框里的trace顺序完全跟着你往figure里添加trace的顺序走,所以不用找特殊配置,直接调整trace的添加顺序就行——把你想放最前面的Iris-virginica先加进去,接着是Iris-versicolor,最后加Iris-setosa,就能实现你要的顺序。

下面是完整的代码示例,用鸢尾花数据集演示:

import plotly.graph_objects as go
import seaborn as sns

# 加载鸢尾花数据集
iris = sns.load_dataset("iris")

# 创建figure对象
fig = go.Figure()

# 1. 先添加紫色的Iris-virginica trace(悬浮框首位)
fig.add_trace(go.Scatter(
    x=iris[iris["species"] == "virginica"]["sepal_length"],
    y=iris[iris["species"] == "virginica"]["sepal_width"],
    name="Iris-virginica",
    marker_color="#9933ff",  # 紫色
    hovertemplate="Iris-virginica<br>花萼长度: %{x}<br>花萼宽度: %{y}<extra></extra>"
))

# 2. 再添加绿色的Iris-versicolor trace(悬浮框第二位)
fig.add_trace(go.Scatter(
    x=iris[iris["species"] == "versicolor"]["sepal_length"],
    y=iris[iris["species"] == "versicolor"]["sepal_width"],
    name="Iris-versicolor",
    marker_color="#33cc33",  # 绿色
    hovertemplate="Iris-versicolor<br>花萼长度: %{x}<br>花萼宽度: %{y}<extra></extra>"
))

# 3. 最后添加蓝色的Iris-setosa trace(悬浮框末位)
fig.add_trace(go.Scatter(
    x=iris[iris["species"] == "setosa"]["sepal_length"],
    y=iris[iris["species"] == "setosa"]["sepal_width"],
    name="Iris-setosa",
    marker_color="#3366ff",  # 蓝色
    hovertemplate="Iris-setosa<br>花萼长度: %{x}<br>花萼宽度: %{y}<extra></extra>"
))

# 设置统一悬浮框模式
fig.update_layout(
    hovermode="x unified",
    title="鸢尾花萼尺寸分布",
    xaxis_title="花萼长度",
    yaxis_title="花萼宽度"
)

# 显示图表
fig.show()

关键说明

  • 严格按照你想要的悬浮框顺序调用add_trace,先添加的trace会出现在悬浮框最上方
  • 每个trace的hovertemplate可以保持独立配置,x unified模式会自动整合这些模板内容
  • hovertemplate里的<extra></extra>用来去掉默认的trace名称后缀,避免重复显示物种名

运行代码后,鼠标悬停时的悬浮框顺序就会是:紫色Iris-virginica在前,接着是绿色Iris-versicolor,最后是蓝色Iris-setosa。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:25:02