我的问题与使用散景0.7.1的另一个线程非常相似,但散景服务器的API在0.12.0中已经发生了足够的变化,我正在努力使这个答案适应新版本.
总而言之,我有一个页面,其中包含一个时间流网格图,从不断更新的文件中提取数据.该页面有一个MultiSelect菜单,列出了我文件中的所有变量.我希望能够在菜单中选择不同的变量,按一个按钮,然后让现有变量的图消失并替换为新的时间流,其中图的数量可能不同.我正在使用bokeh serve --show script.py包装器运行我的脚本.
在我最初的尝试中,我为一个按钮分配了一个事件处理程序,它清除'curdoc',然后从MultiSelect添加新选择的变量的图.这会运行,但图表的数量不会更新.很明显,我错过了告诉服务器以某种方式刷新页面布局的调用.
import numpy as np
from bokeh.driving import count
from bokeh.plotting import figure, curdoc
from bokeh.layouts import gridplot
from bokeh.models import Slider, Column, Row, ColumnDataSource, MultiSelect, Button
from netCDF4 import Dataset
import datetime
# data
#data = Dataset('/daq/spt3g_software/dfmux/bin/output.nc', 'r', format='NETCDF4')
data = Dataset('20160714_warm_overbiased_noise.nc', 'r', format='NETCDF4')
vars = data.variables.keys()[1:11]
# plots
d = {('y_%s'%name):[] for name in vars}
d['t'] = []
source = ColumnDataSource(data=d)
figs = [figure(x_axis_type="datetime", title=name) for name in vars] …Run Code Online (Sandbox Code Playgroud)