Plotly:如何向折线图添加水平线?

新手上路,请多包涵

我用下面的代码制作了一个折线图,我试图在 y=1 处添加一条水平线。我尝试按照 plotly 网站上的说明进行操作,但它仍然没有显示。有谁知道为什么?

 date = can_tot_df.date
growth_factor = can_tot_df.growth_factor

trace0 = go.Scatter(
            x=date,
            y=growth_factor,
            mode = 'lines',
            name = 'growth_factor'
)

fig = go.Figure()
fig.add_shape(
        type='line',
        x0=date.min(),
        y0=1,
        x1=date.max(),
        y1=1,
        line=dict(
            color='Red',
        )
)

data = [trace0]
iplot(data)

原文由 gboge 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

简短的回答和一般的解决方案:

 fig.add_shape(type='line',
                x0=0,
                y0=40,
                x1=8,
                y1=40,
                line=dict(color='Red',),
                xref='x',
                yref='y'
)

有关 OP 问题的详细信息和细节

如果没有数据样本,很难 准确 判断问题出在哪里。我 可以确定 的是,您缺少参数 xrefx yref 以指定该线是作为您的 y 的单位绘制的 --- 轴。从您的示例代码来看,这就是您想要执行的操作,因为您要根据日期指定 x 值。

此外,对于较新版本的 plotly,您无需担心 iplot 。您只需运行 fig.show() 即可轻松显示图表。下面的图和代码示例将向您展示如何使用 fig.show() 以及如何根据轴单位定义线。

阴谋:

在此处输入图像描述

代码:

 import plotly.graph_objects as go
import numpy as np

x = np.arange(10)

fig = go.Figure(data=go.Scatter(x=x, y=x**2))

fig.add_shape(type='line',
                x0=0,
                y0=40,
                x1=8,
                y1=40,
                line=dict(color='Red',),
                xref='x',
                yref='y'
)

fig.show()

xref='x' 的替代方案是 xref='paper' 。现在您可以将 x0 指定为 01 之间的浮点数,从绘图的开始到结束。

原文由 vestland 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题