Однозначный виджет боке

Можно ли создать что-то подобное в Bokeh, или для этого потребуется customJS? Похоже на довольно простой запрос (по крайней мере, с точки зрения того, что предлагают другие подобные библиотеки), но ничего не могу найти в документации.

Виджет


person Hazzamataza    schedule 25.09.2017    source источник
comment
Да, вы можете создать это с помощью сервера боке. По сути, это элемент div, который отформатирован и стилизован с помощью css. Все это возможно с боке, см. bokeh.pydata .org / en / latest / docs / user_guide / Interaction /. Это нужно обновлять? если это так, то нет никакого пути - либо вам нужно использовать обратные вызовы на основе python, либо customJS.   -  person Anthonydouc    schedule 25.09.2017
comment
Ага, его нужно обновить. Я смогу сделать это с помощью Python, а затем я предполагаю, что CSS будет шаблоном, в котором числа можно будет обновлять?   -  person Hazzamataza    schedule 25.09.2017


Ответы (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 для получения дополнительной информации.

person Anthonydouc    schedule 27.09.2017
comment
Большое спасибо за это - было очень любезно с вашей стороны потратить столько времени. Я дам тебе знать, как у меня дела! - person Hazzamataza; 27.09.2017
comment
не проблема, если все получится, было бы здорово принять ответ, если он касался вашего вопроса - person Anthonydouc; 28.09.2017