Я хотел бы добавить несколько осей Y к графику боке (аналогично полученному с помощью matplotlib на прикрепленном изображении ).
Возможно ли это также с использованием боке? Ресурсы, которые я нашел, демонстрируют вторую ось Y.
Заранее спасибо!
С наилучшими пожеланиями, Пранит Айенгар
Да, это возможно. Чтобы добавить новую ось к фигуре p
, используйте p.extra_y_ranges["my_new_axis_name"] = Range1d(...)
. Не пишите p.extra_y_ranges = {"my_new_axis_name": Range1d(...)}
, если вы хотите добавить несколько осей, потому что это перезапишет, а не расширит словарь. Другие объекты диапазона также допустимы.
from bokeh.plotting import figure, show, output_notebook
from bokeh.models import LinearAxis, Range1d
output_notebook()
data_x = [1,2,3,4,5]
data_y = [1,2,3,4,5]
color = ['red', 'green', 'magenta', 'black']
p = figure(plot_width=500, plot_height=300)
p.line(data_x, data_y, color='blue')
for i, c in enumerate(color, start=1):
name = f'extra_range_{i}'
lable = f'extra range {i}'
p.extra_y_ranges[name] = Range1d(start=0, end=10*i)
p.add_layout(LinearAxis(axis_label=lable, y_range_name=name), 'left')
p.line(data_x, data_y, color=c, y_range_name=name)
show(p)
См. также пример сдвоенной оси (ось) на официальном сайте. В этом примере используется тот же синтаксис только с двумя осями. Другой пример — пример двойной оси для моделей.