[英]How can I add text labels to a Plotly scatter plot in Python?
[英]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)
輸出:
補充參考:
或者,您可以使用 add_shape 方法,請參閱此處的文檔。 如果添加以下代碼,則可以添加與上述 y=4 相同的行。
fig.add_shape(type="line",
x0=4,
y0=0,
x1=4,
y1=10)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.