更改Bokeh中框选择工具的突出显示行为?

时间:2015-12-10 20:50:00

标签: python bokeh

我有一个用黑色圆圈绘制的散点图。使用框选择工具时,框外的圆圈会自动着色为半透明蓝色。

在API中,有没有办法让外圈保持黑色并改变内圈的颜色?如果我有两个链接的散点图,有没有办法让每个图上的突出显示的圆圈有不同的颜色?

import numpy as np
from bokeh.plotting import figure, output_file, show

N = 100
max = 100
x = np.random.random(size=N) * max
y = np.random.random(size=N) * max
output_file("scatter.html")

p = figure(tools="box_select", width=400, height=400, x_range=(0,100), y_range=(0,100))
p.circle(x, y, size=10, fill_color="black", line_color=None)

show(p) 

1 个答案:

答案 0 :(得分:3)

您可以更改圆圈渲染器的selection_glyphnonselection_glyph属性。有关详细信息,请参阅manualHow to set properties of selected/unselected glyphs in bokeh

您可以为每个绘图使用不同的颜色,选择不会共享视觉属性。

import numpy as np
from bokeh.plotting import figure, show, output_file
from bokeh.models import Circle

N = 100
max = 100
x = np.random.random(size=N) * max
y = np.random.random(size=N) * max

p = figure(tools="box_select", width=400, height=400, x_range=(0,100), y_range=(0,100))
r = p.circle(x, y, size=10, fill_color="black", line_color=None)
r.selection_glyph = Circle(fill_color="orange", line_color=None)
r.nonselection_glyph = Circle(fill_color="black", line_color=None)

output_file("scatter.html")
show(p)