考虑以下 MWE 来利用 Python API 绘制 plotly 散点图:
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])
然而,这种方法似乎并不是最佳选择:除了需要添加一行冗长的代码外,它还需要手动“采样”直线,并且在鼠标悬停时将线高度添加到工具提示中。
有更好的方法来实现这个吗?
cufflinks
+pandas
,可以将hline
和vline
选项添加到iplot
中以实现此目的(请参见例如此处的In[43]
)。在仅使用plotly
时,难道没有等效的方法吗? - glS