Я пытаюсь создать график Боке, который обновляется при получении данных.Я использую add_next_tick_callback(listener)
для отправки данных с запросами, используя curl "http://localhost:5006/mviz/?vpom=0.9&rpom=0.9"
.Данные считываются правильно при отправке с использованием curl, но,
- График в браузере не обновляется при вызове
source.stream
. - После многократной отправки данных я ожидал, чтодобавляйте новые данные к
source.data
каждый раз, увеличивая количество строк.Но даже после многократного нажатия на команду curl
, она каждый раз печатает только одно и то же число строк (только четыре строки, одна новая строка добавляется к трем строкам при инициализации).
Послеэто скрипт, который у меня есть в файле mviz.py
, который я запускаю, вызывая bokeh serve mviz.py
с использованием Bokeh версии 1.0.4:
from bokeh.layouts import column
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, curdoc
from bokeh.server.server import Server
source = ColumnDataSource({"vpom": [0.1, 0.2, 0.3], "rpom": [0.2, 0.3, 0.4]})
fig = figure(title='Streaming Circle Plot!', sizing_mode='scale_width',
x_range=[0, 1], y_range=[0, 1])
fig.circle(source=source, x='vpom', y='rpom', size=10)
curdoc().add_root(column(fig))
curdoc().title = "Now with live updating!"
def listener():
req = curdoc().session_context
if req is not None:
args = req.request.arguments
print "recv", args
if args:
source.stream({k:map(float,v) for k,v in args.items()}, 100)
print source.data
curdoc().add_next_tick_callback(listener)
Может кто-нибудь указать проблемы с приведенным выше скриптом и прокомментировать, если это правильноспособ использовать Boekh для этого варианта использования.