情节情节上的永久尖峰线?

Permanent Spike Line on a plotly plot?

我想知道是否可以在 plotly 中添加永久尖峰线?尖峰线应始终位于 x 轴上的特定值并读取并显示 y 轴和右侧 y 轴的值(即使通过破折号更新图)。

我一直在探索尖峰线选项,但 none 似乎可以胜任。 fig.update_xaxes(showspikes=True, spikemode='across', spikesnap='cursor', showline=True, spikedash='solid')

谢谢!

作为解决方法,您可以尝试使用垂直线和注释来模仿尖峰线。

你可以这样做:

import plotly.express as px
import pandas as pd

df = pd.DataFrame({"x": [1, 2, 3, 4], "y": [1, 3, 5, 8]})
fig = px.line(df, x="x", y="y")

fig.add_vline(x=df.x.iloc[2], line_color="blue")
fig.update_traces(mode="lines+markers")
fig.add_annotation(
    x=df.x.iloc[2],
    y=df.y.iloc[2],
    xref="x",
    yref="y",
    xshift=30,
    text=f"x = {df.x.iloc[2]}<br>y = {df.y.iloc[2]}",
    showarrow=False,
    font=dict(family="Courier New, monospace", size=14, color="#ffffff"),
    align="center",
    bgcolor="blue",
)

fig.show()

结果:

我在这里使用了一条垂直线,因为它类似于您问题中的代码生成的尖峰线,但您也可以将垂直线与水平线结合起来,使线成为虚线等。 .

您可能不喜欢这种方法的一件事是,如果您启用了 hoverinfo,hoverinfo 标签将覆盖注释。