Как создать интерактивную гистограмму с боке через виджет выбора на ноутбуке Jupyter?
Почему в ноутбуке возникает следующая ошибка:
"RuntimeError: Модели должны принадлежать только одному документу, название (id = '1044', ...) уже находится в документе ОШИБКА: tornado.access: 500 GET /autoload.js?bokeh-autoload-element=1002&bokeh-absolute-url = http://localhost:54277&resources=none (:: 1) 117.01ms "
Я внимательно прочитал этот пример из github и подобную ситуацию из Google Bokeh Group , в последнем они запускают сервер bokeh, а не ядро jupyter
output_notebook()
dct={'Date' : ["2018-01-07", "2018-01-12", "2018-01-13", "2018-01-14", "2018-01-20", "2018-01-24"],'Activity' : ['A','B','A','B','A','B'],'Count' : [1, 2, 5, 3, 7, 1]}
df=pd.DataFrame(dct)
activity_list=df['Activity'].unique().tolist().copy()
activity_selected='A'
def modify_doc(doc):
def make_plot(cdf):
plot = figure()
plot.vbar(x=cdf.Date, top=cdf.Count, width=0.9)
push_notebook()
show(plot, notebook_handle = True)
return plot
def update_plot(attr, old, new):
activity = select.value
sdf = df.copy()
sdf = sdf[sdf['Activity'] == activity]
layout.children[0] = make_plot(sdf)
select = Select(title='Select Activity', value=activity_selected, options=activity_list)
select.on_change('value', update_plot)
p=make_plot(df)
layout=column(select, p)
doc.add_root(layout)
show(modify_doc)
В снимке я ожидаю что-то вроде этого:
Я использую Bokeh 1.0.4