gpt4 book ai didi

javascript - 使用套索工具选择多线

转载 作者:太空狗 更新时间:2023-10-29 21:57:46 25 4
gpt4 key购买 nike

我在 Bokeh 中有一个多线图,我想使用套索工具选择一些多线。这在默认情况下不起作用:套索工具不选择任何线条。

from bokeh.io import output_file, show
from bokeh.plotting import figure
from bokeh.models import MultiLine

plot = figure(plot_width=400, plot_height=400, tools="lasso_select")
renderer = plot.multi_line([[1, 2, 3, 4, 5], [0,1]], [[2, 5, 8, 2, 7], [1,0]])

selected_circle = MultiLine(line_alpha=0.5, line_color='firebrick')
nonselected_circle = MultiLine(line_alpha=1, line_color='red')

renderer.selection_glyph = selected_circle
renderer.nonselection_glyph = nonselected_circle

show(plot)

当然,问题是如何将一条线视为已选中:如果线上的一个点在套索区域,还是所有点都在套索区域,则它被选中?

我尝试添加一些 javascript 代码来更改套索工具的行为,但显然多行不能像简单数据点那样工作:

这段代码...

on_lasso = CustomJS(args=dict(), code='''
console.log(cb_obj.selected);
''')

lasso = LassoSelectTool(callback=on_lasso)
plot = figure(plot_width=800, plot_height=600, tools=[lasso])

...告诉我 cb_obj.selected 由于某种原因未定义。

如有任何帮助,我们将不胜感激!

PS:我用的是bokeh v0.13.0

最佳答案

不幸的是,tap 以外的选择方法似乎对 MultiLine 不可用。给你一些历史,在 bokeh v0.12.2 中实现了 tapMultiLine 的支持;见bokeh issue #3110 in GitHub .

但是,在 Debug模式下将您的 CustomJs 代码用于 lasso (export BOKEH_DEV=1)我在控制台日志中得到以下信息:

[bokeh] 'poly' selection not available for MultiLine  bokeh.js:13478

此警告仅记录一次,请参阅 code ,而且很容易错过。

我建议在 Bokeh GitHub 中打开功能请求。

关于javascript - 使用套索工具选择多线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com