javascript - Python Bokeh CustomJS para Widgets
bokeh scatter 3d (1)
Siga este ejemplo de galería de bokeh (películas IMDB): https://demo.bokehplots.com/apps/movies
Su código está aquí: https://github.com/bokeh/bokeh/blob/master/examples/app/movies/main.py
La última parte hace exactamente lo que quieres, mira en esta función:
def select_movies():
Tengo un DataFrame de pandas similar al siguiente
import pandas as pd
import numpy as np
df = pd.DataFrame(columns=[''item''], data=list(range(0,15)))
df[''crit''] = [''crit1'',''crit2'',''crit3'']*5
df[''label''] = np.random.choice([''label1'',''label2'',''label3''], size=(15,1))
df.head()
Estoy trazando un gráfico de barras con Bokeh
from bokeh.io import output_file, show, output_notebook
from bokeh.charts import Bar
from bokeh.layouts import layout
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import CheckboxButtonGroup
source = ColumnDataSource(df)
p = Bar(df, label=''label'', values=''item'', agg=''count'', legend=None)
checkbox = CheckboxButtonGroup(labels=["Opt1", "Opt2", "Opt3"], active=[0, 1])
grid = layout([[p], [checkbox]])
show(grid)
Me gustaría agregar una devolución de llamada JS personalizada que filtre y ordene el marco de datos para actualizar la trama. Por ejemplo, al hacer clic en el botón ''Opt2'', me gustaría filtrar el marco de datos para mantener solo las filas donde crit == crit2 y me gustaría que el dataframe se clasifique (para tener las barras en orden decreciente).
No estoy familiarizado con JS, solo Python es mi amigo ... ¿Es algo fácil de lograr? ¿Alguien podría ponerme en la pista? El ejemplo que encontré en la documentación de bokeh no se correspondía con este caso de uso.