Как связать holoviews в бэкэнде с интерфейсом bokehjs - PullRequest
0 голосов
/ 20 февраля 2019

Привет! Я разрабатываю веб-страницу, на которой необходимо построить миллионы точек, поэтому я использую HoloViews в своем бэкэнде для создания графика и отправки его в виде * 1005.* Bokeh модель для моего интерфейса, которая использует Bokehjs .

Так что в API я вызываю функцию, которая делает это

hv.extension("bokeh")
points = hv.Points(df)
datashaded = hd.datashade(points, aggregator=ds.count_cat('cat')).redim.range(x=(-5,5),y=(-5,5))
plot = hv.render(datashaded)
return json.dumps(json_item(plot))

и возвращает модель Bokeh, отправленную в формате JSON, во внешний интерфейс.

Функция hd.datashade визуализирует график Боке и внутренне вызывает устройство обработки данных для создания изображений при управлении масштабированием.Но проблема в том, что, когда я вызываю эту функцию только один раз через API, элементы управления масштабированием не создают новое изображение, а просто увеличивают пиксели.

Мне нужен способ «живого» процесса Pythonзапуск "как документация состояния, так что я могу иметь элементы управления масштабированием и всплывающие подсказки.Но я понятия не имею, как этого добиться.

1 Ответ

0 голосов
/ 20 февраля 2019

После того, как вы выбросите вещи в JSON, больше не будет никакого соединения с кодом Python.Вместо этого вы можете сделать что-то вроде http://pyviz.org/tutorial/13_Deploying_Bokeh_Apps.html:

hv.extension("bokeh")
points = hv.Points(df)
datashaded = hd.datashade(points, aggregator=ds.count_cat('cat')).redim.range(x=(-5,5),y=(-5,5))
doc = hv.renderer('bokeh').server_doc(datashaded)
doc.title = 'HoloViews Bokeh App'

, а затем запустить bokeh serve --show file.py, чтобы запустить Bokeh Server для вашего файла.Сервер Bokeh обеспечит выполнение процесса Python, предоставит веб-сервер для отображения вашего HTML / JS и установит соединения между ними.

...