【发布时间】:2021-10-14 07:15:06
【问题描述】:
考虑以下示例数据框。
import pandas as pd
import numpy as np
df = pd.DataFrame({
'id': list(range(1000, 2000)),
'y1': np.random.randn(1000, ),
'y2': 1 + np.random.randn(1000, )
})
现在我想按“y1”以降序对数据框进行排序,并绘制 x 与 y1 的图。同时将 id 和 y2 显示为悬停数据。
from plotly import express as px
df = df.sort_values('y1', ascending=False, ignore_index=True)
df['x'] = df.index
fig = px.line(df, x='x', y='y1', hover_data=['id', 'y2'])
现在我想将 x 轴上的 3 个点(比如 100、200、300)标记为特殊点,并仅在这些点上添加标记
这是我尝试过的:
from plotly import graph_objects as go
fig.add_trace(
go.Scatter(
x=[100, 200, 300],
y=[df.at[100, 'y1'], df.at[200, 'y1'], df.at[300, 'y1']],
mode='markers',
name='Ground Truth'
)
)
但这使得当我将鼠标悬停在表单 (x_special, y1(x_special)) 的标记点时,数据框中的 hover_data 丢失了,我再也看不到这些点的 id, y2 信息。
如何只用标记标记这些特殊点,并且仍然保留数据框中的悬停数据信息。
如果有人有其他/更好的方式来表明某些 x 值是特殊的,我也可以。
【问题讨论】: