Как я могу выполнить set_xlim или set_ylim в Bokeh?
Я создаю фигуру в функции, например.
import numpy
from bokeh.plotting import figure, show, output_notebook
output_notebook()
def make_fig():
rows = cols = 16
img = numpy.ones((rows, cols), dtype=numpy.uint32)
view = img.view(dtype=numpy.uint8).reshape((rows, cols, 4))
view[:, :, 0] = numpy.arange(256)
view[:, :, 1] = 265 - numpy.arange(256)
fig = figure(x_range=[0, c], y_range=[0, rows])
fig.image_rgba(image=[img], x=[0], y=[0], dw=[cols], dh=[rows])
return fig
Позже я хочу увеличить цифру:
fig = make_fig()
# <- zoom in on plot, like `set_xlim` from matplotlib
show(fig)
Как я могу сделать программный зум в боке?
Ответы
Ответ 1
Вы можете установить свойства x_range
и y_range
фигуры с помощью метода set
. (Я искал что-то вроде set_xlim
или set_ylim
от matplotlib.)
from bokeh.models import Range1d
fig = make_fig()
left, right, bottom, top = 3, 9, 4, 10
fig.set(x_range=Range1d(left, right), y_range=Range1d(bottom, top))
show(fig)
Ответ 2
Может быть, наивное решение, но почему бы не пропустить ось lim в качестве аргумента вашей функции?
import numpy
from bokeh.plotting import figure, show, output_notebook
output_notebook()
def make_fig(rows=16, cols=16,x_range=[0, 16], y_range=[0, 16], plot_width=500, plot_height=500):
img = numpy.ones((rows, cols), dtype=numpy.uint32)
view = img.view(dtype=numpy.uint8).reshape((rows, cols, 4))
view[:, :, 0] = numpy.arange(256)
view[:, :, 1] = 265 - numpy.arange(256)
fig = figure(x_range=x_range, y_range=y_range, plot_width=plot_width, plot_height=plot_height)
fig.image_rgba(image=[img], x=[0], y=[0], dw=[cols], dh=[rows])
return fig
Ответ 3
вы также можете использовать его напрямую
p = Histogram(wind , xlabel= 'meters/sec', ylabel = 'Density',bins=12,x_range=Range1d(2, 16))
show(p)