BokehJS использует JavaScript, поэтому по умолчанию у вас будет точка в качестве десятичного разделителя, и, как вы уже проверили, в средствах форматирования Bokeh для этого нет опции. Однако вы можете использовать plot.xaxis.major_label_overrides = {1: "1,0", 2: "2,0"...}
, чтобы ваши значения xaxis
выглядели так, как вам нравится.
Один из подходов состоит в том, чтобы взять все значения из renderer.data_source.data['x']
, поместить их на ось x, а затем заменить их вашими значениями, разделенными запятыми, как это (работает для Bokeh v2.1.1):
from bokeh.plotting import show, figure
from bokeh.models import ColumnDataSource, FixedTicker
source = ColumnDataSource(dict(x=[1,2,3,4], y=[4,5,5,4]))
plot = figure()
lines = plot.line('x', 'y', source = source)
plot.xaxis.ticker = FixedTicker(ticks=[i for i in source.data['x']])
plot.xaxis.major_label_overrides = {i:'{},0'.format(i) for i in source.data['x']}
show(plot)
Если вам нужно динамически обновлять график, вам нужно будет установить обратный вызов CustomJS в диапазоне графика и соответствующим образом обновить значения xaxis
, например:
plot.x_range.js_on_change('end', CustomJS(args={..}, code='...'))
![введите здесь описание изображения](https://i.stack.imgur.com/RROXG.png)
person
Tony
schedule
26.05.2021