【发布时间】:2020-07-22 20:33:19
【问题描述】:
我正在我的网站中为 pandas 数据源绘制散景图。
pandas 数据框df 如下所示:
X Y Type
0 5 A
0 15 B
1 12 A
1 18 B
我添加了一个Select 对象,其值为A 和B。基本上,用户在该选择对象中选择值A 或B,我的CustomJS 回调过滤DataSource 并绘制对应于所选类型的图形:
source = ColumnDataSource(df)
select = Select(title="Select Type:", options=['A', 'B'])
callback = CustomJS(args={'source':source}, code = """
var t = cb_obj.value
var a = df.filter(function(c){if (c['Type'] == t) return c;});
source.data['X'] = []
source.data['Y'] = []
for (var i=0; i < a.length; i++) {
source.data['X'].push(a[i]['%s']);
source.data['Y'].push(a[i]['Y']);
}
source.change.emit();
"""
select.value = 'A'
问题是图表在第一次显示时看起来很乱。实际上,它绘制了所有 X 和 Y 列,我必须手动更改下拉列表中的默认选择类型才能触发回调并正确过滤数据。
我可以在第一次显示我的图表之前以编程方式触发该回调吗?
【问题讨论】:
标签: javascript python bokeh