无法清除散景服务器中的文档

时间:2016-11-20 02:04:15

标签: python bokeh

这是我用来清除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) )

1 个答案:

答案 0 :(得分:1)

尝试以这种方式完全清除文档时可能会出现问题。目前最好的做法是将文档的顶层设置为某种布局(例如rowcolumn),然后设置为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()