В ноутбуке Jupyter с bokeh
версия 0.12.7 у меня есть 3 ячейки кода следующим образом
Ячейка 1
import pandas as pd
from bokeh.plotting import figure
from bokeh.io import output_file, show
from bokeh.plotting import ColumnDataSource
from bokeh.models import HoverTool
from bokeh.models import CategoricalColorMapper
from bokeh.layouts import row, column, gridplot
from bokeh.models.widgets import Panel, Tabs
df = pd.read_csv('Data/female_literacy_fertility.csv', thousands=',')
Ячейка 2
source1 = ColumnDataSource(df[df['Continent']=='ASI'])
p1 = figure(x_axis_label='fertility (children per woman)', y_axis_label='female literacy (% population)')
p1.circle('fertility', 'female literacy', source=source1)
source2 = ColumnDataSource(df[df['Continent']=='EUR'])
p2 = figure(x_axis_label='fertility (children per woman)', y_axis_label='female literacy (% population)')
p2.circle('fertility', 'female literacy', source=source2)
source3 = ColumnDataSource(df[df['Continent']=='AF'])
p3 = figure(x_axis_label='fertility (children per woman)', y_axis_label='female literacy (% population)')
p3.circle('fertility', 'female literacy', source=source3)
source4 = ColumnDataSource(df[df['Continent']=='LAT'])
p4 = figure(x_axis_label='fertility (children per woman)', y_axis_label='female literacy (% population)')
p4.circle('fertility', 'female literacy', source=source4)
row1 = [p1, p2]
row2 = [p3, p4]
layout1 = gridplot([row1, row2])
output_file('bokeh1.html')
show(layout1)
Ячейка 3
tab1 = Panel(child=p1, title='Latin America')
tab2 = Panel(child=p2, title='Africa')
tab3 = Panel(child=p3, title='Asia')
tab4 = Panel(child=p4, title='Europe')
layout2 = Tabs(tabs=[tab1, tab2, tab3, tab4])
output_file('bokeh2.html')
show(layout2)
Когда я управлял ячейками в порядке 1, 2, 3, все было хорошо. Но если снова запустить ячейку 2 (то есть 1, 2, 3, 2), я получу это сообщение об ошибке
Bokeh Error Model 'Panel' не существует. Это может быть связано с тем, что виджет или пользовательская модель не были зарегистрированы до первого использования.
Единственный способ преодолеть проблему - это перезапустить ядро снова. Кто-нибудь знает в чем проблема и как ее исправить? Заранее спасибо.