簡體   English   中英

如何在 plotly 中向散點圖添加一條線?

[英]How can I add a single line to a scatter plot in plotly?

考慮以下 MWE 使用 python API 繪制散點圖來繪制:

import plotly.plotly as py
import plotly.graph_objs
import plotly.offline
plotly.offline.init_notebook_mode()

data = list(range(10))
trace = plotly.graph_objs.Scatter(
    x=list(range(len(data))),
    y=data
)
plotly.offline.iplot([trace])

在此處輸入圖片說明

如果我現在想在這個圖中添加一條(比如說)水平線怎么辦? 我瀏覽了文檔,例如有關折線圖和散點圖的部分以及折線圖的部分,但似乎沒有一個示例涵蓋如何覆蓋不同的圖,或者只是繪制直線和類似的形狀。

一種簡單的方法是將線添加為第二個散點圖,如下所示:

import plotly.plotly as py
import plotly.graph_objs
import plotly.offline
plotly.offline.init_notebook_mode()

data = list(range(10))
trace = plotly.graph_objs.Scatter(
    x=list(range(len(data))),
    y=data
)
trace_line = plotly.graph_objs.Scatter(
    x=list(range(len(data))),
    y=[4] * len(data),
    mode='lines'
)
plotly.offline.iplot([trace, trace_line])

在此處輸入圖片說明

然而,這種方法似乎並不理想:除了添加單行所需的冗長之外,它還讓我手動“采樣”直線,並在鼠標懸停時將線高添加到工具提示中。

有沒有更好的方法來實現這一目標?

嗨,從您的問題中,我可以看到您需要繪圖形狀功能並為繪圖生成一條水平線。

請在下面的代碼中找到您在問題中顯示的相同圖表

代碼:

from plotly.offline import iplot
import plotly.graph_objs as go


data = list(range(10))
trace = go.Scatter(
    x=list(range(len(data))),
    y=data
)
layout = {
    'shapes': [
        # Line Horizontal
        {
            'type': 'line',
            'x0': 0,
            'y0': 4,
            'x1': 10,
            'y1': 4,
            'line': {
                'color': 'rgb(50, 171, 96)',
                'width': 4
            },
        }
    ],
    'showlegend': True
}

fig = {
    'data': [trace],
    'layout': layout,
}


iplot(fig)

輸出:

情節形狀

補充參考:

  1. 情節形狀示例

  2. 情節形狀參考

或者,您可以使用 add_shape 方法,請參閱此處的文檔 如果添加以下代碼,則可以添加與上述 y=4 相同的行。

fig.add_shape(type="line",
              x0=4, 
              y0=0, 
              x1=4, 
              y1=10)

您只需添加下一行:

fig.add_hline(y=4, line_width=2, line_dash='dash')

還可以查看文檔以進一步深入了解 plotly 最近添加的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM