Кто-нибудь знает, как добавить заголовок/метки оси x и y для фигуры Боке? Например. Ось X: время, ось Y: цена акций.
Спасибо большое!
Кто-нибудь знает, как добавить заголовок/метки оси x и y для фигуры Боке? Например. Ось X: время, ось Y: цена акций.
Спасибо большое!
Начиная с Bokeh 0.11.1, в разделе руководства пользователя по осям теперь показано, как редактировать свойства существующих осей. Способ сделать так же, как и раньше:
p = figure(width=300, height=300, x_axis_label='Initial xlabel')
p.xaxis.axis_label = 'New xlabel'
Проверьте этот пример: elements.py
Теперь вы также можете назначить общие параметры, связанные с графиком (plot_width
, title
и т.д.), Вызовом figure(...)
вместо функции рендеринга (в данном примере circle
)
Я придумал эту технику для изменения меток оси с помощью CustomJS
:
В объявлении fig = figure(...)
установите x_axis_location
и y_axis_location
там, где вы не хотите, чтобы конечная ось была. Например, если вы хотите, чтобы ось x внизу и ось y слева на последнем рисунке, установите следующее:
x_axis_location='above', y_axis_location='right'
Скрыть исходные оси:
fig.xaxis.visible = None
fig.yaxis.visible = None
Объявите новые оси и добавьте их к фигуре (то есть добавьте их на противоположные стороны от тех, которые вы установили в шаге 1):
from bokeh.models import LinearAxis
xaxis = LinearAxis(axis_label="Initial x-axis label")
yaxis = LinearAxis(axis_label="Initial y-axis label")
fig.add_layout(xaxis, 'below')
fig.add_layout(yaxis, 'left')
Добавьте новые оси к аргументам CustomJS
, где вы можете изменить их axis_label
:
callback = CustomJS(args=dict(source=source,
xaxis=xaxis,
yaxis=yaxis), code="""
xaxis.attributes.axis_label = "New x-axis label";
yaxis.attributes.axis_label = "New y-axis label";
xaxis.change.emit();
yaxis.change.emit();
""")
from bokeh.plotting import figure, output_file, show
from bokeh.models.annotations import Title
p = figure(plot_width=1300, plot_height=400,x_axis_type="datetime")
p.xaxis.axis_label = 'Time'
p.yaxis.axis_label = 'Stock Price'
p.line(time,stock_price)
t = Title()
t.text = 'Stock Price during year 2018'
p.title = t
show(p)