Я пытаюсь изменить источник для диаграммы боке, делая выбор лассо / коробки.
Обратный вызов работает один раз, но перестает работать после первого изменения источника.Кроме того, я не могу сказать, почему некоторые точки подсвечиваются после нажатия кнопки.
Я бы хотел постепенно сузить источник данных, сделав выборки.
Вот небольшой пример:
import bokeh
import pandas as pd
import numpy as np
from bokeh.plotting import figure, curdoc, show
from bokeh.layouts import column, row, Spacer
from bokeh.models import ColumnDataSource,GMapOptions, HoverTool
from bokeh.models.widgets import Button
df1 = pd.DataFrame(np.random.randint(0,100,size=(3000, 2)), columns=["X","Y"], index=[str(i) for i in range(1,3000+1)])
pointchart=figure(plot_width=800, plot_height=700, tools=['box_select','lasso_select'])
pointchart_source= ColumnDataSource(df1)
pointchart_glyph= pointchart.circle("X","Y",source=pointchart_source, size=3.5)
def on_selection_change(attr, old, new):
global newdataframe
newdataframe= pd.DataFrame(pointchart_source.data).loc[new]
pointchart_glyph.data_source.selected.on_change('indices', on_selection_change)
def on_update_button_click():
pointchart_source.data= ColumnDataSource(newdataframe).data
update_button = Button(label="Update", button_type="success")
update_button.on_click(on_update_button_click)
layout =row(pointchart,update_button)
curdoc().add_root(layout)
!powershell -command {'bokeh serve --show Source_update_interaction.ipynb'}
Спасибо