我试图使用 Plotly 的 add_hline() 向 Plotly 图表添加一条水平线。只要我不使用 simple_white 模板,它就可以完美工作。MWE 在这里:
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_hline(y=0.9, line_dash='dash', line_color='Red')
fig.update_layout(width=400, height=400,
# template='simple_white'
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
如果没有 template='simple_white' 行, add_hline() 将按预期工作。不过,使用该模板,并且没有其他更改,绘图是相同的,但没有水平线。
我无法说出为什么会发生这种情况,但是您可以通过显式指定水平线的line_width和来解决它,而不会弄乱模板:opacity
fig.add_hline(y=0.9, opacity=1, line_width=2, line_dash='dash', line_color='Red')
Run Code Online (Sandbox Code Playgroud)
如果您只指定线宽,则线条看起来会被冲淡,可能某些主题(seaborn以及ggplot2除此之外plotly_white)更改了这两个参数?
我不确定为什么会发生这种情况,但很可能是simple_white模板在注释上呈现,或者背景颜色取代了注释。
无论出于何种原因,您都可以simple_white通过将绘图背景颜色设置为白色来重新创建模板,然后将轴设置为黑色,并在外部添加刻度线。
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_hline(y=0.9, line_dash='dash', line_color='Red')
fig.update_layout(
width=400,
height=400,
plot_bgcolor="white",
xaxis=dict(linecolor="black"),
yaxis=dict(linecolor="black")
# template='simple_white'
)
fig.update_xaxes(ticks="outside")
fig.update_yaxes(ticks="outside")
fig.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4902 次 |
| 最近记录: |