javascript python pandas charts bokeh

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.