有没有办法用散景绘制无限的水平线?
无论用户缩放到多远,线的端点都永远不可见。

到目前为止,这是我尝试过的。它只是打印一个空的 Canvas :

import bokeh.plotting as bk
import numpy as np

p = bk.figure()
p.line([-np.inf,np.inf], [0,0], legend="y(x) = 0")
bk.show(p)

一种方法是将端点设置为极高/极低,并且图形的x_range和y_range相对于它们极小。
import bokeh.plotting as bk
import numpy as np

p = bk.figure(x_range=[-10,10])
p.line([-np.iinfo(np.int64).max, np.iinfo(np.int64).max], [0,0], legend="y(x) = 0")
bk.show(p)

但是,我希望有人有一个更优雅的解决方案。

编辑:删除过时的解决方案

最佳答案

您正在寻找“跨度”:



请看看
http://docs.bokeh.org/en/latest/docs/user_guide/annotations.html#spans

因此,代码如下所示:

import numpy as np
import bokeh.plotting as bk
from bokeh.models import Span

p = bk.figure()

# Vertical line
vline = Span(location=0, dimension='height', line_color='red', line_width=3)
# Horizontal line
hline = Span(location=0, dimension='width', line_color='green', line_width=3)

p.renderers.extend([vline, hline])
bk.show(p)

使用此解决方案,用户可以随意平移和缩放。行的结尾将永远不会显示。

关于python - 散景中的无限水平线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28797330/

10-10 14:04