有没有办法用散景绘制无限的水平线?
无论用户缩放到多远,线的端点都永远不可见。
到目前为止,这是我尝试过的。它只是打印一个空的 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/