【发布时间】:2017-04-05 12:56:16
【问题描述】:
假设我有 2 个(或更多)具有相同列数和行数的数据源:
#Data
dates = [date(2016, i, 1) for i in range(1,13)]
data1 = pd.DataFrame(index = dates, data = random.randn(12, 2),
columns = ['A', 'B'])
data2 = pd.DataFrame(index = dates, data = random.randn(12, 2),
columns = ['A', 'B'])
我想在散景中绘制列 A 和 B:
#Bokeh
source = ColumnDataSource(source1)
source1 = ColumnDataSource(data1)
source2 = ColumnDataSource(data2)
p = figure(x_axis_type = 'datetime')
l1 = p.line(source = source, x = dates, y= 'A', color = 'Red')
l2 = p.line(source = source, x = dates, y= 'B', color = 'Blue')
我有一个下拉列表:
select = Select(options = ['source1', 'source2'], value = 'source1')
为select 创建回调以便折线图中的数据源随着下拉列表中选择的不同选项而改变的最简单方法是什么?我在 JS 方面几乎没有经验,也无法真正理解回调,因此我们将不胜感激。
编辑:
我试过了:
codes = """
var f = cb_obj.get('value');
var sdata = source.data;
var 1data = source1.data;
var 2data = source2.data;
if (f == "source1") {
sdata = 1data ;
source.trigger('change');
};
if (f == "source2") {
sdata = 2data ;
source.trigger('change');
};
"""
select.callback= CustomJS(args= dict(source = source, source1=source1,
source2=source2), code = codes)
但它不起作用......
【问题讨论】:
标签: javascript python bokeh