Можно ли создать что-то подобное в Bokeh, или для этого потребуется customJS? Похоже на довольно простой запрос (по крайней мере, с точки зрения того, что предлагают другие подобные библиотеки), но ничего не могу найти в документации.
Однозначный виджет боке
Ответы (1)
Основным используемым компонентом Bokeh является объект Div.
template=("""
<div class='content'>
<div class='name'> {stock_name} </div>
<span class='number'>{price}<small>{price_unit}</small> </span>
<span class='percentage' style='color: {colour};'> {percentage}<small>%</small> </span>
</div>
""")
# initial text
text = template.format(stock_name = stock_name,
price=price,
price_unit='k',
percentage=percentage,
colour='#97D389')
div = Div(text=text, height=300)
Затем его можно добавить в документ и показать пользователю.
В качестве полного примера я создал примерную сущность, в которой числа периодически обновляются - см. https://gist.github.com/anthonydouc/c8571f0a2f9aa8415bd566e1ac2ba237. В комментарии внизу сути есть инструкции о том, как структурировать приложение - создайте папку с именем "stocktext" и создайте вложенные папки, как указано, затем запустите 'bokeh serve -- show stocktext'
В основном использовался пример потоковой передачи (https://demo.bokeh.org/surface3d), чтобы номера обновляются автоматически.
Все содержимое просто содержится в простом элементе html div, использование с Bokeh объясняется здесь:
https://docs.bokeh.org/en/latest/docs/user_guide/interaction/widgets.html#div
Наконец, чтобы включить обратные вызовы на основе Python, вам необходимо запустить сервер боке - см. https://docs.bokeh.org/en/latest/docs/user_guide/server.html для получения дополнительной информации.