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

gbo*_*oge 6 python plotly plotly-python

我用下面的代码制作了一个折线图,我试图在 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)
Run Code Online (Sandbox Code Playgroud)

小智 23

您还可以使用fig.add_hline(y=1)--> 请参阅https://plotly.com/python/horizo​​ntal- vertical-shapes/

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_hline(y=40, line_width=3, line_dash="dash", line_color="green")


fig.show()
Run Code Online (Sandbox Code Playgroud)


ves*_*and 7

如果没有您的数据样本,就很难确切地说出问题所在。我可以肯定的是,您缺少参数xrefyref指定将线绘制为您yx轴的单位。从您的示例代码来看,这就是您想要做的,因为您要根据日期指定 x 值。

此外,您无需担心iplot新版本的 plotly。您只需运行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()
Run Code Online (Sandbox Code Playgroud)

的替代方法xref='x'xref='paper'。现在,您可以指定x0为之间浮动0,并1从一开始就跨越和剧情的结束。


S3D*_*DEV 1

您\xe2\x80\x99 正在将行添加到fig对象中,但fig没有传递到iplot()函数中,只有您的data. 所以只绘制了轨迹。

\n\n

如果您使用的是最新版本的plotly,新语法允许您仅使用fig对象来创建此图,例如:

\n\n
from plotly import graph_objects as go\n\nfig = go.Figure()\n\n# Contrived dataset for example.\nx = [1, 2, 3, 4]\ny = [i**2 for i in x]\n\nfig.add_trace(go.Scatter(\n              x=x,\n              y=y,\n              mode = \'lines\',\n              name = \'growth_factor\'))\n\nfig.add_shape(type=\'line\',\n              x0=min(x),\n              y0=5,\n              x1=max(x),\n              y1=5,\n              line=dict(color=\'Red\'))\n\nfig.update_shapes(dict(xref=\'x\', yref=\'y\'))\n\nfig.show()\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了方便起见,这里是情节文档。

\n