首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bokeh +Holoview+ Datashader on Django

Bokeh +Holoview+ Datashader on Django
EN

Stack Overflow用户
提问于 2020-08-04 19:39:53
回答 1查看 632关注 0票数 0

我们正在尝试构建一个web应用程序--Dashboard--在DJango上显示不同的交互式图表(包括单击回调、获取新数据等),并使用Bokeh +Holoview+ Datashader。

由于数据非常大,并且可能有10+ 100万个点,所以我们使用的是datashader。我们可以从Bokeh +Holoview+ Datashader的后端获得一个静态html,并使用Django REST api将其传递给前端:

views.py

代码语言:javascript
复制
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,所以数据是在静态html中聚合和转换的,当我们放大时,我们不会从端获取我们正在寻找的数据。为此,我猜我们需要Bokeh服务器。

我的疑问是:(由于使用Datashader必须用于大型数据集)

  1. 如何使用Bokeh服务器以及Django REST?另外,我希望在前端有一个定制的html页面,所以我使用Django模板。
  2. 在用Bokeh + Datashader开发REST时,除了Django之外,还有其他选择吗?
  3. Bokeh支持REST吗?怎么做?请分享一些REST和回调的示例?例如,我有一个仪表板,当我单击一个图表时,我应该获得更多关于图表的详细信息,并在仪表板中播放这些图表?下坠等
EN

回答 1

Stack Overflow用户

发布于 2020-08-04 21:24:16

  1. 我强烈建议使用面板,它构建在Bokeh之上,支持HoloViews。对于Django集成,请看一下这些医生
  2. / 3. Bokeh服务器构建在“旋风”上,这意味着它可以很容易地扩展,例如,在Panel的下一个版本(0.10)中,您将能够轻松注册自定义REST API,以便与应用程序一起使用。目前还没有任何示例,因为它还没有发布,但我将为下一个版本(大约两周后发布)及时编写几个示例。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63253999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档