2016-04-12 1 views
1

Я начинаю использовать Bokeh для построения данных, которые не имеют общей переменной x или y. Я хотел бы иметь возможность выбирать строку и иметь другие, не выбранные строки, серые. В идеале выбранная линия также будет перенесена в переднюю часть участка.Изменение цвета неиспользуемых линий Bokeh

До сих пор мне удалось получить выделенную строку, но я не могу найти способ «вычеркнуть» не выбранные строки или установить уровень выбранной линии.

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) 

ответ

2

Я нахожусь в подобной ситуации, и нашел этот пример:

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

Не пробовал это сам, но, кажется, близка к тому, что вы ищете.

EDIT Просто попробовал, работал безупречно для меня.

+0

Не могли бы вы показать некоторые скрипты, пожалуйста? Я пытаюсь сделать то же самое, но всегда имеет все выделенные строки или все не выбранные - я не могу выбрать одну строку из 3 – jf328