我希望下面的代码来仅设置上界标绘Y范围的,但是下界也莫名其妙地设置为0:
import bokeh.plotting as bkp
import numpy as np
bkp.output_file("/tmp/test_plot.html")
fig = bkp.figure(y_range=[None, 100]) # plot y range: 0-100
# fig = bkp.figure() # plot y range: 50-100
fig.line(np.linspace(0, 1, 200), np.random.random(200)*50+50) # number range: 50-100
bkp.save(fig)
为什么会出现这种情况?什么是只设置1个区间震荡的最简单的方法?
你是一个“哑”(非自动测距)DataRange1d
更换自动量程默认Range1d
。设置该地块创建默认范围内的end
值,无需更换整个范围。或可替换地,用新DataRange1d
取代:
from bokeh.models import DataRange1d
p = figure(y_range=DataRange1d(end=100))
要么
p.y_range.end = 100
该Range1d(start=None, end=100)
(因为你是同时参照您的意见)只定义您的初始视图。它没有意义的范围内不可兼得的起点和终点,所以如果你给它start=None
,它将只使用它的默认值是0
。
我认为你正在试图做的是这样的:
Range1D(start=value1, end=value2, bounds=(None, 100))
这会给你一个上限为100,没有下限。
见docs更多的规范和实例。
编辑:好吧,我开始准备你的问题,好像你试图设定的范围。你想使用DataRange1D
类代替,然后。如果你只是确保不会覆盖start
,则默认为“自动”。换句话说,这应该做你想做的:
DataRange1D(end=100)