Каков наилучший способ выбора определенных строк в кадре данных с помощью раскрывающегося меню в Bokeh?Я попытался использовать модифицированный скрипт ниже, который отображает радужную оболочку, но получил только пустой экран сервера:
import pandas as pd
from bokeh.models import ColumnDataSource, ColorBar, CategoricalColorMapper
from bokeh.plotting import figure, show
from bokeh.palettes import Spectral6
from bokeh.io import curdoc
from bokeh.layouts import column
from bokeh.layouts import widgetbox
from bokeh.sampledata.iris import flowers as df
source = ColumnDataSource(df)
mapper = CategoricalColorMapper(
factors=['setosa', 'virginica', 'versicolor'],
palette=['red', 'green', 'blue'])
plot = figure(x_axis_label='petal_length', y_axis_label='sepal_length',plot_width=400,plot_height=400)
plot.circle('petal_length', 'sepal_length',size=4, source=source,
color={'field': 'species',
'transform': mapper})
species=list (df['species'].unique())
menu = Select(options=species,value='setosa', title='Species')
# Add callback to widgets
def callback(attr, old,new):
source_data=pd.DataFrame(source.data)
new_data= source_data.loc[source_data['species']==menu.value]
new_data_dict=dict (new_data)
source.data=new_data_dict
menu.on_change('value', callback)
layout = column(menu, plot)
curdoc().add_root(layout)
Первая часть - это приведенный пример, поэтому диаграмма без меню работает нормально.Моя проблема связана с дизайном функции обратного вызова для выбора определенных строк в кадре данных.