第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用兩個(gè)同步的選擇小部件過濾表格

使用兩個(gè)同步的選擇小部件過濾表格

米脂 2022-12-06 16:30:57
我想使用兩個(gè)散景選擇小部件來過濾表格,請(qǐng)參閱下面的代碼結(jié)構(gòu)。我定義了兩個(gè)小部件,userm 和 locations。首先,選擇帶有 userm 小部件的用戶(應(yīng)該更改表格和“位置”小部件),其次,選擇帶有位置小部件的位置(應(yīng)該再次更改表格)。我的代碼可以很好地根據(jù)用戶過濾表格,但不會(huì)根據(jù)位置選擇更新位置小部件和表格。我不確定是否可以在同一個(gè)回調(diào)函數(shù)中實(shí)現(xiàn)所有功能。有任何想法嗎?謝謝!#Import librariesfrom bokeh.io import output_notebook, showfrom bokeh.layouts import widgetboxfrom bokeh.models.widgets import Select, DataTable, TableColumnfrom bokeh.models.sources import ColumnDataSource, CDSViewfrom bokeh.models import CustomJS, Selectimport pandas as pdoutput_notebook()#Create the dataframedf = pd.DataFrame({'Index': ['9', '10', '11', '12', '13'],        'Size': ['250', '150', '283', '433', '183'],        'X': ['751', '673', '542', '762', '624'],        'Y': ['458', '316', '287', '303', '297'],        'User': ['u1', 'u1', 'u2', 'u2', 'u2'],        'Location': ['A', 'B', 'C', 'C', 'D']        })#Create widgetsuserm = Select(title = "Select user:", options=list(set(df['User'])),                value=list(set(df['User']))[0])locations = Select(title="Select location:", options=list(set(df['Location'])),                    value=list(set(df['Location']))[0])#Create data sourcesource=ColumnDataSource(data=dict(User=df['User'], Location=df['Location']))filteredSource = ColumnDataSource(data=dict(User=[],Location=[]))#Create data tablecolumns = [TableColumn(field="User",title="User"),           TableColumn(field="Location",title="Location",sortable=True)]data_table=DataTable(source=filteredSource,columns=columns, width=400 )data_table_unfiltered=DataTable(source=source,columns=columns, width=400 )callback = CustomJS(args=dict(source=source,                              filteredSource=filteredSource,                              data_table=data_table), code="""    var data = source.data;    var f = cb_obj.value;    var df2 = filteredSource.data;    df2['User']=[]    df2['Location']=[]    locations=[]
查看完整描述

1 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

可以在小部件之間共享單個(gè)CustomJS回調(diào),但您不能使用cb_obj。您必須顯式傳遞小部件。


callback = CustomJS(args=dict(source=source,

                              filteredSource=filteredSource,

                              userm=userm, locations=locations),

                    code="""

    const data = source.data;

    const userm_value = userm.value;

    const locations_value = locations.value;

    const df2 = filteredSource.data;

    df2['User'] = [];

    df2['Location'] = [];


    for (let i = 0; i < data['User'].length; i++) {

        if (data['User'][i] === userm_value && data['Location'][i] === locations_value) {

            df2['User'].push(data['User'][i])

            df2['Location'].push(data['Location'][i])

        }

    }


    filteredSource.change.emit()

""")


userm.js_on_change('value', callback)

locations.js_on_change('value', callback)


查看完整回答
反對(duì) 回復(fù) 2022-12-06
  • 1 回答
  • 0 關(guān)注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)