这是我用来清除Bokeh服务器中的高级图表的示例代码。我想通过点击按钮清除旧的高级图,但是我无法清除旧版。 Sample screenshot
from bokeh.charts import Bar
from bokeh.layouts import column
from bokeh.models.widgets import Button
from bokeh.plotting import curdoc
from bokeh.sampledata.autompg import autompg as df
button = Button(label="Clear")
def clear():
curdoc().clear()
p = Bar(df, 'cyl', values='mpg',
title="Total MPG by cyl")
button.on_click(clear)
curdoc().add_root(column(button,p) )
答案 0 :(得分:1)
尝试以这种方式完全清除文档时可能会出现问题。目前最好的做法是将文档的顶层设置为某种布局(例如row
或column
),然后设置为update
该布局的子项。一般来说,从Bokeh 0.12.3
开始,可能会说更新事物比替换事物更可靠。
您可以在crossfilter示例中看到此示例:
https://github.com/bokeh/bokeh/blob/master/examples/app/crossfilter/main.py#L72
它使用这样的代码:
def update(attr, old, new):
layout.children[1] = create_figure()