如何在复杂布局中通过名称访问 Bokeh 对象

How to access a Bokeh object by its name in complex layouts

我正在构建一个具有复杂布局(例如多行和多列)的界面,并且我正在尝试找出一种方法来简化通过其名称访问给定对象(无论是图形、小部件等)的方法.让我们举个例子:

import numpy as np

from bokeh.plotting import figure, show
from bokeh.io import output_notebook
from bokeh.layouts import row, column
from bokeh.palettes import Category20
output_notebook()

x = np.random.randint(1,10,10)
y = np.random.randint(1,10,10)

p1 = figure()
p1.line(x,y)
p2 = figure()
p2.line(x,y)
p3 = figure(title='Me!', name='target')
p3.line(x,y)

c = column([p2,p3])
r = row(p1,c)

有没有办法从主布局对象 r 访问 p3?我知道对于提供的示例,可以直接使用变量名称,但我的应用程序包含在子函数中绘制的图。我可以 return 单独处理每个情节,但我想知道是否有一种方法可以按属性搜索 "multi-dimensional"(即浏览子项)布局。我尝试使用 r.select(name='target'),但是这个 returns:

TypeError: select() got an unexpected keyword argument 'name'

谢谢!

select 方法接受属性字典的值。在你的情况下,尝试使用 dict(name='target').