Простой слайдер выбора данных Bokeh без обратного вызова Python или JavaScript?

1
9

Возможно ли сделать простой динамический выбор данных с помощью слайдера в Bokeh без пользовательского обратного вызова Python? Вот что я могу сделать с помощью обратного вызова, но для этого потребуется сервер Bokeh для работы в экспортированном html:

введите описание изображения здесь

Однако на самом деле кажется, что пользовательский обратный вызов не должен быть необходим для этого, и это довольно проблематично в моем большом приложении. Нет ли какого-нибудь умного способа сделать это исключительно с помощью собственных объектов Bokeh, например CDSView или фильтра или чего-то еще? Я уверен, что какой-нибудь пользовательский javascript тоже может это сделать, но, опять же, я бы предпочел не делать этого, если это возможно.

import numpy as np
import pandas as pd
import ipywidgets as widgets
from bokeh.io import show, push_notebook
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource

x = np.arange(0, 10, 0.1)
dfs = []
ts = range(100)
for t in ts:
    y = x**(t/50.)
    dfs.append(pd.DataFrame({"x": x, "y": y, "t": t}))

df = pd.concat(dfs)
cds = ColumnDataSource(df)

p = figure(x_range=(0,10), y_range=(0,100))
p.scatter(x='x', y='y', source=cds)

handle = show(p, notebook_handle=True)

def update(t):
    cds.data = df[df.t == t]
    push_notebook(handle=handle)

slider = widgets.SelectionSlider(value=0, options=ts)
io = widgets.interactive_output(update, {"t": slider})
display(slider, io)
Герасим
Вопрос задан20 июня 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.