用情节悬停消息

问题描述 投票:0回答:2

我有一个用plotly 绘制情节的脚本

import plotly.graph_objects as go
import pandas as pd

# Create a DataFrame with X, Y, and f values
df= pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [10, 12, 5, 8, 6], 'x2': [1, 3, 4, 5, 7],'y2':[2,5,3,1,8],'f':[1,2,3,4,5]})

hover_text1 = df.apply(lambda row: f'({row["x"]},{row["y"]}) at {row["f"]}', axis=1)
fig=go.Figure()
fig.add_trace(go.Scatter(x=df.x, y= df.y, mode='lines+markers', text=hover_text1, name='data1', line=dict(color='orange',width=linewidth),marker=dict(symbol='circle', size=markersize),hoverinfo='text'))
fig.add_trace(go.Scatter(x=df.x2, y= df.y2, mode='lines+markers', name='data2', line=dict(color='green',width=linewidth),marker=dict(symbol='circle', size=markersize)))

# Customize the layout or add additional settings as needed
fig.update_layout(title='Plotly Scatter Plot', xaxis_title='X-axis', yaxis_title='Y-axis', showlegend=True)

# Show the plot
fig.show()

不幸的是,我无法捕获悬停的图像,但如果你运行它,你会看到有两条线(一条橙色,另一条绿色) 当您将鼠标悬停在橙色的上方时,您会收到“(X,Y) at f”消息,这很好。

但是当您将鼠标悬停在绿色曲线上时,您会得到默认的“(X,Y)”,然后以反色显示曲线的名称。但是,一旦您自定义悬停消息,该名称就会消失(如橙色的)

我的问题是,如何将悬停消息自定义为橙色消息,但又不会丢失带有数据名称的漂亮反色消息?

编辑:澄清 为了清楚起见,我将

hover_text2
的名称更改为
hover_text1
(因为它代表
data1

当鼠标悬停在

data2
时,我看到 (X,Y) 和名称“data2”呈反色

我想看到的是:

  • data1
    中,我想看到 f 处的 (X,Y),然后是反色的漂亮的“data1”名称(如您在 data2 中看到的那样)
python plotly
2个回答
0
投票

也许我误解了这个问题,但你还没有定义一个hover_text1变量

hover_text1 = df.apply(lambda row: f'({row["x"]},{row["y"]}) at {row["f"]}', axis=1)

0
投票

您可以直接设置

hovertemplate
:

fig.add_trace(go.Scatter(x=df.x, y= df.y, mode='lines+markers', text=hover_text1, 
                         name='data1', line=dict(color='orange',width=linewidth),
                         marker=dict(symbol='circle', size=markersize),
                         hovertemplate='%{text}<extra>%{fullData.name}</extra>'))
  • %{text}
    指通过
    text
    关键字分配的数据,
    %{fullData.name}
    指迹线名称。
  • <extra></extra>
    是“辅助框”,是悬停部分,跟踪名称通常以对比色显示(标签必须设置为空才能完全隐藏辅助框)。

请注意,设置

hoverinfo='text'
hovertemplate=%{text}<extra></extra>
的快捷方式。

另请参阅 使用悬停模板自定义悬停文本

© www.soinside.com 2019 - 2024. All rights reserved.