Python 用于小部件的 Bokeh CustomJS
Python Bokeh CustomJS for Widgets
我有一个 pandas DataFrame 类似于下面的
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()
我正在使用 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)
我想添加一个自定义 JS 回调来过滤和排序数据框以更新绘图。例如,通过单击 'Opt2' 按钮,我想过滤数据框以仅保留 crit==crit2 的行,并且我希望对数据框进行排序(使条形图按降序排列)。
我对JS不熟悉,只有Python是我的朋友... 容易实现吗?有人可以把我放在轨道上吗?我在 bokeh 文档中找到的示例与此用例不符。
按照这个散景画廊示例(IMDB 电影):
https://demo.bokeh.org/movies
它的代码在这里:
https://github.com/bokeh/bokeh/blob/master/examples/app/movies/main.py
最后一部分正是你想要的,看看这个函数:
def select_movies():
我有一个 pandas DataFrame 类似于下面的
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()
我正在使用 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)
我想添加一个自定义 JS 回调来过滤和排序数据框以更新绘图。例如,通过单击 'Opt2' 按钮,我想过滤数据框以仅保留 crit==crit2 的行,并且我希望对数据框进行排序(使条形图按降序排列)。
我对JS不熟悉,只有Python是我的朋友... 容易实现吗?有人可以把我放在轨道上吗?我在 bokeh 文档中找到的示例与此用例不符。
按照这个散景画廊示例(IMDB 电影): https://demo.bokeh.org/movies
它的代码在这里:
https://github.com/bokeh/bokeh/blob/master/examples/app/movies/main.py
最后一部分正是你想要的,看看这个函数:
def select_movies():