更改未选择的散景线的颜色

时间:2016-04-12 00:16:01

标签: python bokeh

我开始使用Bokeh绘制不共享x或y变量的数据。我希望能够选择一条线并使其他非选定线灰显。理想情况下,选定的线也将被带到图的前面。

到目前为止,我已经能够选择该行,但我找不到“灰化”非选定行或设置所选行的级别的方法。

import numpy as np
from bokeh.plotting import figure, show, output_file
from bokeh.models.sources import ColumnDataSource
from bokeh.models import Line,TapTool

output_file("test.html")

x0s = np.random.randint(0,20,20)
y0s = np.random.randint(0,20,20)
x1s = np.random.randint(0,20,20)
y1s = np.random.randint(0,20,20)

p_left = figure(tools=[TapTool()])

for xs,ys in zip([x0s,x1s],[y0s,y1s]):
    source = ColumnDataSource({'x': xs, 'y': ys})
    default_line = Line(x='x', y='y', line_color='blue', line_width=2)
    selected_line = Line(line_color='red', line_width=4)
    nonselected_line = Line(line_color='grey')
    p_left.add_glyph(source,default_line,selection_glyph=selected_line,nonselection_glyph=nonselected_line)

show(p_left)

1 个答案:

答案 0 :(得分:2)

我处于类似情况,并找到了这个例子:

http://bokeh.pydata.org/en/latest/docs/user_guide/styling.html#selected-and-unselected-glyphs

我自己没有试过,但似乎接近你正在寻找的东西。

编辑刚尝试过,对我来说完美无缺。