gpt4 book ai didi

javascript - 使用 CustomJS 过滤数据帧和绘图的 Bokeh 选择小部件回调

转载 作者:行者123 更新时间:2023-12-03 01:45:49 25 4
gpt4 key购买 nike

我想使用 CustomJS 将回调添加到我的 Bokeh 选择小部件。我需要根据选择小部件的回调来过滤我的数据帧。由于我是 JavaScript 编程新手,我无法编写回调代码

    true_source=ColumnDataSource(data={'a':df.loc[, 'MONTH_YR'],
'b':df.loc[, 'MCOUNT'],
'qty':df.loc[,'MPDCQTY'],
'value':df.loc[,'MQTYRATE'],
'section':df.loc['MSECTION']})

#I added the true_source so I could have a reference from my original dataframe while filtering

source=ColumnDataSource(data={'x':df.loc[df['MSECTION']=='TURRET','MONTH_YR'],
'y':df.loc[df['MSECTION']=='TURRET', 'MCOUNT'],
'qty':df.loc[df['MSECTION']=='TURRET','MPDCQTY'],
'value':df.loc[df['MSECTION']=='TURRET','MQTYRATE']})

def callback_select(attr, old, new):
s=section.value
new_data={'x':df.loc[df['MSECTION']==s, 'MONTH_YR'],
'y':df.loc[df['MSECTION']==s, 'MCOUNT'],
'qty':df.loc[df['MSECTION']==s,'MPDCQTY'],
'value':df.loc[df['MSECTION']==s,'MQTYRATE']}
source.data=new_data

因为我想部署一个 HTML 文件,所以用 python 编写回调是行不通的。所以我尝试使用 CustomJS 编写回调。但我确信我写错了。

    callback=CustomJS(args=dict(source=source, ts=true_source), code=""""
var data1=ts.data;
var section=data1['section']
var a=data1['a']
var b=data1['b']

var data=source.data;
var f=cb_obj.value;

var x=[];
var y=[];
var j=0;

for(var i=0;i<section.length;i++){
if(section==f){
x[j].push(a[i]);
y[j].push(b[i]);
}
}
source.change.emit();
""")

this image here shows the plot, select option dosent work

谁能帮我处理这段 JS 代码吗?

最佳答案

对于问题中提到的Python中的callbcak,可以在CustomJS中创建类似的内容以在htmls中实现。这里var x, y, qty, value是source的键,a, b 、数量、值适用于 true_source。我使用它们更新了源代码。

callback=CustomJS(args=dict(source=source,ts=true_source), code="""
var data=ts.data;
var section=data['section'];

var a=data['a'];
var b=data['b'];
var qty_t=data['qty_t'];
var value_t=data['value_t'];

var data1=source.data;
var f=cb_obj.value;

var x=[];
var y=[];
var qty=[];
var value=[];

for(var i=0;i<a.length; i++){
if(section[i]==f){
x.push(a[i]);
y.push(b[i]);
qty.push(qty_t[i]);
value.push(value_t[i]);

}
}
data1['x']=x;
data1['y']=y;
data1['qty']=qty;
data1['value']=value;

source.change.emit();
""")

关于javascript - 使用 CustomJS 过滤数据帧和绘图的 Bokeh 选择小部件回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50648727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com