bokeh-server简要说明

可以在python和浏览器中保持"模型对象"之间的同步,就会出现更多额外的强大可能性:

  • 使用python的全部功能,通过计算或查询响应浏览器中生成的UI和工具事件
  • 自动将服务器端的数据更新推送到前端的展示
  • 使用周期性、超时和异步回调来驱动数据流更新

所以,在python和浏览器之间进行同步的功能是Bokeh服务器的主要用途。

Bokeh服务器的适用场景

  • 本地部署,个人使用
    创建一个可以在本地运行的小应用程序,或者您可以将其发送给同事在本地运行。在这个场景中,Bokeh服务器非常有用且易于使用。

  • 创建可部署的应用服务
    发布交互式数据可视化和应用程序,这些可视化和应用程序可以被更广泛的受众查看和使用(可能是在internet上,也可能是在公司内部网络上)。

  • 分享发布
    用于支持多用户,多应用的开发环境。一方面是构架可用于执行多个Bokeh服务实例的环境,另一个方面针对用户或应用,可进行有效的区分和管理。

构建Bokeh应用程序

到目前为止,使用Bokeh服务器创建交互式数据可视化的最灵活方法是创建Bokeh应用程序,并使用Bokeh serve命令为它们提供服务。
在这个场景中,Bokeh服务器使用应用程序代码为所有连接的浏览器创建会话和文档。

[图片上传失败...(image-a94d18-1591083565242)]

Bokeh服务器使用应用程序代码创建Bokeh文档。来自浏览器的每个新连接都会导致Bokeh服务器为该会话创建一个新文档。

一个简单的Bokeh Server的例子

from bokeh.models import Slider, ColumnDataSource
from bokeh.io import curdoc
from bokeh.layouts import row
from bokeh.plotting import figure
from numpy.random import random

#Define the points that create the line plot

x = [1,2,3,4,5,6,7,8,9]
y = [2,3,4,5,6,7,8,9,10]

data_points = ColumnDataSource(data = {'x': x, 'y': y})

plot = figure(title = 'Random Line plot generator')

plot.line('x', 'y', source = data_points, color = 'red')

slider_widget = Slider(start = 0, end = 100, step = 1, value = 10)

def callback(attr, old, new):
    
    points = slider_widget.value
    data_points.data = {'x': random(points), 'y': random(points)}
    
slider_widget.on_change('value', callback)
layout = row(slider_widget, plot)
curdoc().add_root(layout)

使用boker server --show script_name.py 方式调用过程如下


bokeh_server_2.gif
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容