gpt4 book ai didi

plotly add_hline() 不适用于辅助轴

转载 作者:行者123 更新时间:2023-12-04 17:18:52 24 4
gpt4 key购买 nike

我正在尝试使用辅助 y 轴在绘图中添加 hline 形状。该图正确显示了两个不同 y 轴的数据,但尽管在 add_hline 函数中使用了 yref='y2' ,但仍将 hline 绘制在主轴上。
我意识到我可以使用 add_shape 而不是 hline 来解决这个问题,但我试图确定我是否做错了什么。

import plotly.express as px
import plotly.graph_objects as go
import numpy as np

# simple example with hline
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_traces(go.Scatter(y=np.arange(1, 7), mode="lines+markers", yaxis='y2'))
fig.add_hline(y=2, line_dash='dash', line_color='Red', yref='y2')

fig.update_layout(
width=400,
height=400,
plot_bgcolor="white",
xaxis=dict(linecolor="black"),
yaxis=dict(linecolor="black"),
yaxis2=dict(
title="yaxis2 title",
overlaying="y",
side="right",
linecolor="black",
)
)
fig.update_xaxes(ticks="outside")
fig.update_yaxes(ticks="outside")
fig.show()
enter image description here

最佳答案

您可能在 Plotly 的 add_hline 中发现了一个错误。方法!我可以打开一个错误报告供 Plotly 团队查看。
现在,您可以使用 add_shape方法和设置参数:xref="paper", x0=0, x0=1覆盖整个图形的宽度。使用 yref="y2"并同时设置 y0=2y1=2按预期工作。

import plotly.express as px
import plotly.graph_objects as go
import numpy as np

# simple example with hline
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_traces(go.Scatter(y=np.arange(1, 7), mode="lines+markers", yaxis='y2'))

## this may be a bug
# fig.add_hline(y=2, line_dash='dash', line_color='Red', yref='paper')

fig.add_shape(type="line",
xref="paper", yref="y2",
x0=0, y0=2, x1=1, y1=2,
line=dict(
color="red",
dash="dash"
),
)

fig.update_layout(
width=400,
height=400,
plot_bgcolor="white",
xaxis=dict(linecolor="black"),
yaxis=dict(linecolor="black"),
yaxis2=dict(
title="yaxis2 title",
overlaying="y",
side="right",
linecolor="black",
)
)
fig.update_xaxes(ticks="outside")
fig.update_yaxes(ticks="outside")
fig.show()
enter image description here

关于 plotly add_hline() 不适用于辅助轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67373687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com