Мы пытаемся создать веб-приложение - Dashboard - для отображения различных интерактивных (включая обратный вызов щелчка, получение новых данных и c) диаграмм с помощью Bokeh + Holoviews + Datashader на DJango.
Поскольку данные очень большие и могут содержать более 10 миллионов точек, мы используем даташейдер. Мы можем получить stati c html из бэкэнда из Bokeh + Holoviews + Datashader из Backend и передать его во фронтенд, используя Django REST api как:
views.py
import numpy as np
import holoviews as hv
import datashader as ds
from dask import dataframe as dd
from bokeh.io import show, curdoc
from bokeh.layouts import layout
from bokeh.models import Slider, Button
from holoviews.operation.datashader import datashade
renderer = hv.renderer('bokeh').instance(mode='server')
def home(request):
def plot_info(y_col):
from vaex import dataframe as datafm
df_dask = dd.read_parquet(r"C:\Dropbox\1mln.parquet", engine='pyarrow',
columns=['nest11', 'nest21', 'first_element', 'second_element', 'timestamp'])
df_dask['timestamp'] = dd.to_datetime(df_dask.timestamp, unit='ns')
return hv.Curve((df_dask['timestamp'], df_dask[y_col]))
def bearer():
stream = hv.streams.Stream.define('y-axis', y_col="nest11")()
dmap = hv.DynamicMap(plot_info, streams=[stream])
vmap = datashade(dmap).opts(width=1200, height=600, responsive=True)
html = renderer.static_html(vmap)
return html
context = {
'seq_num': bearer(),
}
return render(request, 'home/welcome.html', context)
Работает нормально. Однако, поскольку мы использовали Datashader, данные агрегируются и конвертируются в stati c html, когда мы увеличиваем масштаб, мы не получаем данные, которые ищем, с конечной стороны. Для этого, я полагаю, нам нужен сервер Bokeh.
Мои сомнения: (поскольку использование Datashader необходимо для большого набора данных)
- Как я могу использовать сервер Bokeh вместе с Django API REST? Также я хочу иметь настраиваемую страницу html в интерфейсе, поэтому я использую шаблон Django.
- Есть ли альтернатива Django для разработки API REST с помощью Bokeh + Datashader?
- Поддерживает ли Bokeh REST API? как ? пожалуйста, поделитесь некоторыми примерами REST API и обратных вызовов? например, у меня есть информационная панель, и когда я нажимаю на одну диаграмму, я должен получить более подробную информацию о диаграмме и поиграть с этими диаграммами на информационной панели? раскрывающийся список et c