【问题标题】:Plotly add_hline() doesn't work with simple_white templatePlotly add_hline() 不适用于 simple_white 模板
【发布时间】:2021-07-23 10:18:45
【问题描述】:

我试图使用 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()

如果没有 template='simple_white' 行,add_hline() 将按预期工作。虽然使用该模板,并且没有其他更改,但情节是相同的,但没有水平线。

【问题讨论】:

    标签: plotly


    【解决方案1】:

    我不确定为什么会出现这种情况,但很可能是 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()
    

    【讨论】:

      【解决方案2】:

      我不能说为什么会发生这种情况,但是您可以通过为水平线明确指定line_widthopacity 来绕过它,而不会弄乱模板:

      fig.add_hline(y=0.9, opacity=1, line_width=2, line_dash='dash', line_color='Red')
      

      如果只指定线宽,线条看起来会褪色,可能是某些主题(plotly_white之外的ggplot2)更改了这两个参数?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-24
        • 2015-07-23
        • 2013-01-07
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多