擅长:python、mysql、java
<p>Bokeh没有任何内置于这种自动链接的东西。但是,可以使用<code>CustomJS</code>回调根据对另一个字形的选择来更新一个字形的选择:</p>
<pre><code>from bokeh.io import show
from bokeh.layouts import row
from bokeh.models import CustomJS
from bokeh.plotting import figure
p1 = figure(plot_width=300, plot_height=300, tools="tap")
r1 = p1.circle(x=[1, 2], y=1, color=["red", "blue"], size=20)
p2 = figure(plot_width=300, plot_height=300, tools="")
r2 = p2.circle(x=[1, 1, 2], y=[1, 2, 1.5], color=["red", "red", "blue"], size=20)
callback = CustomJS(args=dict(s2=r2.data_source), code="""
const s2_inds = []
if (cb_obj.indices.indexOf(0) >= 0) {
s2_inds.push(0)
s2_inds.push(1)
}
if (cb_obj.indices.indexOf(1) >= 0) {
s2_inds.push(2)
}
s2.selected.indices = s2_inds
"""))
show(row(p1, p2))
</code></pre>
<p>使用此代码,选择左红色圆圈将选择所有右侧红色圆圈,蓝色圆圈也将相同:</p>
<p><a href="https://i.stack.imgur.com/0wqFh.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0wqFh.gif" alt="enter image description here"/></a></p>
<p>请注意,上面的代码显式地手动编码索引之间的关系,以便说明通用技术(即,它手动指定一个表<em>)。您可能需要使用有关特定数据的知识和假设来构建一个更通用的<code>CustomJS</code>回调,它可以计算自动设置哪些索引。在</p>