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