我正在努力处理用户可以修改的选择。我注意到bokeh不能区分全选和不选。这是真的吗?
因此,对于某些具有数据键x
的列数据源,以下结果将导致相同的选择:
source.selected.indices = []
和
all_indices = list(range(len(source.data['x'])))
source.selected.indices = all_indices
如何取消选择数据源的所有元素?
编辑:一个最小的工作示例。
import bokeh.plotting
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
data = dict(x=[15,2,21], y=[8,8,6])
source = ColumnDataSource(data)
plot = bokeh.plotting.figure()
plot.circle(x='x', y='y', source=source)
source.selected.indices = [0,1,2]
source.selected.indices = [1]
source.selected.indices = []
curdoc().add_root(plot)
在source.selected.indices = []
时,所有圆圈均显示为“已选中”;在source.selected.indices = [0,1,2]
时,也显示为。显然,选择是不同的,应该看起来不一样,对吧?
答案 0 :(得分:1)
选择时的默认操作是“冲洗”未选择的点(通过降低其alpha并将颜色设置为灰色),但使选择的点保持原样(相对于未选择的点突出点)。如果您需要其他内容,则用户指南中有一节描述如何配置Selected and Unselected Glyphs。例如:
plot.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=50,
# set visual properties for selected glyphs
selection_color="firebrick",
# set visual properties for non-selected glyphs
nonselection_fill_alpha=0.2,
nonselection_fill_color="blue",
nonselection_line_color="firebrick",
nonselection_line_alpha=1.0)