情节情节上的永久尖峰线?
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 标签将覆盖注释。
我想知道是否可以在 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 标签将覆盖注释。