我开始使用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)
答案 0 :(得分:2)
我处于类似情况,并找到了这个例子:
http://bokeh.pydata.org/en/latest/docs/user_guide/styling.html#selected-and-unselected-glyphs
我自己没有试过,但似乎接近你正在寻找的东西。
编辑刚尝试过,对我来说完美无缺。