用于排列bokeh布局对象的函数。
GridSpec
简化网格布局规范。
Spacer
基类:bokeh.models.layouts.LayoutDOM
bokeh.models.layouts.LayoutDOM
用于填充行或列中空白位置的空间容器。
align
属性类型: Either ( Enum ( Align ) Tuple ( Enum ( Align ) Enum ( Align ) ) )
Either
Enum
Align
Tuple
父容器中的对齐点。
如果布局是这个元素的一个子元素,那么这个布局是有用的。自对齐可以被父容器覆盖(例如网格跟踪对齐)。
aspect_ratio
属性类型: Either ( Enum (枚举(自动)), Float )
Float
描述组件的宽度和高度之间的比例关系。
如果任何一个组件的尺寸在尺寸上是灵活的,这就可以了。如果设置为数字, width / height = aspect_ratio 关系将得到维持。否则,如果设置为 "auto" ,组件的首选宽度和高度将用于确定纵横比(如果未设置,则不保留纵横比)。
width / height = aspect_ratio
"auto"
background
属性类型: Color
Color
组件的背景色。
css_classes
属性类型: List ( String )
List
String
要添加到此DOM元素的CSS类名的列表。注意:类名只是按原样添加,不提供其他保证。
也允许从元组赋值,但是这些元组是经过调整的——属性将始终包含一个列表。
disabled
属性类型: Bool
Bool
小部件在呈现时是否被禁用。
如果 True ,小部件将变灰,并且不会响应UI事件。
True
height
属性类型: NonNegativeInt
NonNegativeInt
高度(像素)。
这可以是固定高度,也可以是首选高度,具体取决于高度大小调整策略。
height_policy
属性类型: Either ( Auto , Enum ( SizingPolicy ) )
Auto
SizingPolicy
描述组件应如何保持其高度。
使用组件的首选大小策略。
"fixed"
准确使用 height 像素。如果组件不能容纳在可用的垂直空间中,它将溢出。
"fit"
使用组件的首选高度(如果设置)并允许在最小和最大高度边界(如果设置)内适合可用的垂直空间。组件的高度既不会被激进地最小化也不会被最大化。
"min"
使用尽可能少的垂直空间,不小于最小高度(如果设置)。起点是首选高度(如果设置)。组件的高度可能会收缩或增长,这取决于父布局、方面管理和其他因素。
"max"
使用尽可能多的垂直空间,不超过最大高度(如果设置)。起点是首选高度(如果设置)。组件的高度可能会收缩或增长,这取决于父布局、方面管理和其他因素。
注解
这是一个实验特性,将来可能会改变。你可以随意使用。喜欢使用 sizing_mode 如果这种程度的控制不是绝对必要的。
sizing_mode
js_event_callbacks
属性类型: Dict ( String , List ( Instance ( CustomJS ) ) )
Dict
Instance
CustomJS
事件名称到列表的映射 CustomJS 回调。
通常,应该使用 Model.js_on_event 方法:
Model.js_on_event
callback = CustomJS(code="console.log('tap event occurred')") plot.js_on_event('tap', callback)
js_property_callbacks
属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。
通常,应该使用 Model.js_on_change 方法:
Model.js_on_change
callback = CustomJS(code="console.log('stuff')") plot.x_range.js_on_change('start', callback)
margin
属性类型: Tuple ( Int , Int , Int , Int )
Int
允许在组件周围创建额外的空间。元组中的值按如下顺序排列-上边距、右边距、下边距和左边距,类似于CSS标准。负边距值可用于从任何方向收缩空间。
max_height
如果高度可调,组件的最大高度(以像素为单位)。
max_width
如果宽度可调,组件的最大宽度(以像素为单位)。
min_height
如果高度可调,组件的最小高度(以像素为单位)。
min_width
如果宽度可调,组件的最小宽度(以像素为单位)。
name
属性类型: String
用户为此模型提供的任意名称。
当查询文档以检索特定的Bokeh模型时,这个名称非常有用。
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
对于提供的任何名称,不提供唯一性保证或其他条件,Bokeh也不以任何理由直接使用该名称。
属性类型: Enum ( SizingMode )
SizingMode
组件的大小。
这是一个高级设置,用于保持组件的宽度和高度。要获得对大小的更细粒度控制,请使用 width_policy , height_policy 和 aspect_ratio 相反(这些优先于 sizing_mode )
width_policy
可能的情况:
组件没有响应。它将保留其原始的宽度和高度,而不考虑任何后续的浏览器窗口调整事件。
"stretch_width"
组件将相应地调整大小以拉伸到可用的宽度,而不保持任何宽高比。组件的高度取决于组件的类型,可以固定或适合组件的内容。
"stretch_height"
组件将相应地调整大小以拉伸到可用的高度,而不保持任何纵横比。组件的宽度取决于组件的类型,可以固定或适合组件的内容。
"stretch_both"
如果纵横比是独立的,那么纵横比会完全占据垂直部分的空间。
"scale_width"
组件将相应地调整大小以拉伸到可用的宽度,同时保持原始或提供的纵横比。
"scale_height"
组件将相应地调整大小以拉伸到可用高度,同时保持原始或提供的纵横比。
"scale_both"
组件将相应地调整到可用的宽度和高度,同时保持原始或提供的纵横比。
subscribed_events
Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。
tags
属性类型: List ( Any )
Any
附加到此模型的任意用户提供的值的可选列表。
当查询文档以检索特定的Bokeh模型时,此数据非常有用:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
或者简单地将任何必要的元数据附加到可以通过 CustomJS 回调等。
对于所提供的任何标签,不存在唯一性保证或其他条件,Bokeh也不以任何理由直接使用这些标签。
visible
组件是否可见以及是否是布局的一部分。
width
组件的宽度(以像素为单位)。
这可以是固定宽度,也可以是首选宽度,具体取决于宽度大小调整策略。
描述组件应如何保持其宽度。
准确使用 width 像素。如果组件不能容纳在可用的水平空间中,它将溢出。
使用组件的首选宽度(如果设置),并允许它在最小和最大宽度范围内(如果设置)适合可用的水平空间。组件的宽度既不会被积极地最小化也不会被最大化。
尽可能少地使用水平空间,不小于最小宽度(如果设置)。起点是首选宽度(如果设置)。组件的宽度可能会根据父布局、方面管理和其他因素而缩小或增大。
使用尽可能多的水平空间,不超过最大宽度(如果设置)。起点是首选宽度(如果设置)。组件的宽度可能会收缩或增长,这取决于父布局、方面管理和其他因素。
apply_theme
应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。
传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。
HasProps
property_values (dict) -- 主题值用于替代默认值
没有
dataspecs
收集所有人的名字 DataSpec 类的属性。
DataSpec
这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。
名称 DataSpec 性质
set[str]
dataspecs_with_props
收集一张记录所有人姓名的字典 DataSpec 类的属性。
名称和 DataSpec 性质
dict[str, DataSpec]
equals
模型的结构相等。
other (HasProps) -- 要比较的另一个实例
如果属性在结构上相等,则为True,否则为False
js_link
使用JavaScript链接两个Bokeh模型属性。
这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。
attr (str) -- 此模型上的Bokeh属性的名称
other (Model) -- 要链接到的Bokeh模型自我属性
other_attr (str) -- 上的财产 other 连接在一起
other
attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 attr
attr
在版本1.1中添加
ValueError --
实际案例
此代码与 js_link :
select.js_link('value', plot, 'sizing_mode')
相当于:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
此外,要使用属性选择器将范围滑块的左侧附加到绘图的x_范围:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
js_on_change
附A CustomJS 对任意BokehJS模型事件的回调。
在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:
"change:property_name"
"change:"
# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:
ColumnDataSource
"stream"
source.js_on_change('streaming', callback)
layout
lookup
找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。
PropertyDescriptor
name (str) -- 要搜索的属性的名称
名为的属性的描述符 name
on_change
在此对象上添加回调以在 attr 变化。
attr (str) -- 此对象的属性名
*callbacks (callable) -- 要注册的回调函数
例子:
widget.on_change('value', callback1, callback2, ..., callback_n)
properties
收集此类的属性名称。
这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。
with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)
属性名称
properties_containers
收集此类上所有容器属性的名称。
容器属性名称
properties_with_refs
收集该类上也有引用的所有属性的名称。
具有引用的属性的名称
properties_with_values
收集将属性名称映射到其值的dict。
跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。
include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)
从属性名到属性值的映射
dict
query_properties_with_values
查询的属性值 HasProps 带有谓词的实例。
query (callable) -- 接受属性描述符并返回True或False的可调用文件
include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)
为匹配的属性映射属性名称和值
references
返回全部 Models 此对象引用的。
Models
remove_on_change
从此对象中删除回调
select
查询此对象及其所有引用以查找与给定选择器匹配的对象。
selector (JSON-like) --
SEQ [模型]
select_one
查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like
模型
set_from_json
从JSON设置此对象的属性值。
name -- (str):要设置的属性的名称
json -- (JSON value):要设置为的属性的值
models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。
setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。
set_select
更新与具有指定属性/值的给定选择器匹配的对象将更新。
updates (dict) --
themed_values
获取任何主题提供的覆盖。
结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。
None
不记名
to_json
返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。
对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。
没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。
from_json()
在大多数情况下,最好序列化和反序列化整个文档。
include_defaults (bool) -- 是否包含未从默认值更改的属性
to_json_string
返回编码此对象属性的JSON字符串。
对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。
没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。
from_json_string()
trigger
unapply_theme
删除所有主题值并恢复默认值。
update
从给定的关键字参数更新对象的属性。
以下是等效的:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
update_from_json
对象的属性从字典中更新。
json_attributes -- (JSON dict):要更新的属性和值
document
这个 Document 此模型附加到(可以是 None )
Document
struct
此模型的Bokeh协议“结构”,即以下形式的dict:
{ 'type' : << view model name >> 'id' : << unique model id >> }
此外,可能还有 subtype 字段(如果此模型是子类型)。
{ "align": "start", "aspect_ratio": null, "background": null, "css_classes": [], "disabled": false, "height": null, "height_policy": "auto", "id": "1001", "js_event_callbacks": {}, "js_property_callbacks": {}, "margin": [ 0, 0, 0, 0 ], "max_height": null, "max_width": null, "min_height": null, "min_width": null, "name": null, "sizing_mode": null, "subscribed_events": [], "tags": [], "visible": true, "width": null, "width_policy": "auto" }
column
创建一列Bokeh布局对象。强制所有对象具有相同的大小调整模式,这是复杂布局工作所必需的。
children (list of LayoutDOM) -- 列的实例列表。可以是以下任何一种- Plot , Widget , Row , Column , ToolbarBox , Spacer .
LayoutDOM
Plot
Widget
Row
Column
ToolbarBox
sizing_mode ("fixed", "stretch_both", "scale_width", "scale_height", "scale_both") -- 布局中的项目将如何调整大小以填充可用空间。默认为 "fixed" . 有关不同模式的更多信息,请参见 sizing_mode 关于 LayoutDOM .
一列LayoutDOM对象,所有对象都具有相同的大小调整模式。
>>> column(plot1, plot2) >>> column(children=[widgets, plot], sizing_mode='stretch_both')
grid
方便地创建可布局对象的网格。
网格是通过使用 GridBox 模型。这样可以最大限度地控制网格的布局,但也很乏味,并且可能导致实际应用程序中的代码无法读取。 grid() 函数通过降低控制级别来解决这一问题,但反过来又提供了一个更方便的API。
GridBox
grid()
支持的模式:
可布局对象的嵌套列表。假设顶级列表表示一列,并在后续嵌套级别中交替显示行和列。我们可以使用 None 用于填充。
>>> grid([p1, [[p2, p3], p4]]) GridBox(children=[ (p1, 0, 0, 1, 2), (p2, 1, 0, 1, 1), (p3, 2, 0, 1, 1), (p4, 1, 1, 2, 1), ])
嵌套的 Row 和 Column 实例。与第一个模式类似,它不使用嵌套列表,而是使用嵌套的 Row 和 Column 模型。这比前者更易读。但是请注意,只有那些没有 sizing_mode 使用集合。
>>> grid(column(p1, row(column(p2, p3), p4))) GridBox(children=[ (p1, 0, 0, 1, 2), (p2, 1, 0, 1, 1), (p3, 2, 0, 1, 1), (p4, 1, 1, 2, 1), ])
可布局对象的平面列表。这需要 nrows 和/或 ncols 待设定。输入列表将相应地重新排列为二维数组。我们可以使用 None 用于填充。
nrows
ncols
>>> grid([p1, p2, p3, p4], ncols=2) GridBox(children=[ (p1, 0, 0, 1, 1), (p2, 0, 1, 1, 1), (p3, 1, 0, 1, 1), (p4, 1, 1, 1, 1), ])
gridplot
创建在单独画布上渲染的打印网格。
这个 gridplot 函数为网格中的所有绘图生成一个工具栏。 gridplot 设计用于布置一组绘图。对于“常规栅格布局”,请使用 layout() 功能。
layout()
children (list of lists of Plot) -- 要在网格中显示的打印数组,以打印对象列表的形式给出。若要将网格中的某个位置留空,请在子列表中为该位置传递“无”。或列表 Plot 如果用ncol调用。或者是GridSpec的一个实例。
toolbar_location (above, below, left, right) -- 工具栏相对于网格的位置。默认为 above . 如果设置为“无”,则不会将工具栏附着到网格。
above
below
left
right
ncols (int, optional) -- 指定要在网格中显示的列数。使用ncol时,只能传递未嵌套的绘图列表(与绘图列表列表相对)。
plot_width (int, optional) -- 你希望你的所有绘图的宽度
plot_height (int, optional) -- 你希望你所有的情节都是这样的高度。
toolbar_options (dict, optional) -- 将用于构造网格工具栏的选项字典(一个 ToolbarBox ). 如果未提供,则将使用ToolbarBox的默认值。
merge_tools (True, False) -- 将所有子打印中的工具组合到一个工具栏中。
False
包含网格工具栏和绘图网格的行或列(取决于工具栏是左/右还是上/下)。网格始终是一列绘图行。
Row or Column
>>> gridplot([[plot_1, plot_2], [plot_3, plot_4]]) >>> gridplot([plot_1, plot_2, plot_3, plot_4], ncols=2, plot_width=200, plot_height=100) >>> gridplot( children=[[plot_1, plot_2], [None, plot_3]], toolbar_location='right' sizing_mode='fixed', toolbar_options=dict(logo='gray') )
创建基于栅格的Bokeh布局对象排列。
children (list of lists of LayoutDOM) -- 网格布局的实例列表。可以是以下任何一种- Plot , Widget , Row , Column , ToolbarBox , Spacer .
一栏 Row 所有子级的布局,都具有相同的大小调整模式。
>>> layout([[plot_1, plot_2], [plot_3, plot_4]]) >>> layout( children=[ [widget_1, plot_1], [slider], [widget_2, plot_2, plot_3] ], sizing_mode='fixed', )
row
创建一行Bokeh布局对象。强制所有对象具有相同的大小调整模式,这是复杂布局工作所必需的。
children (list of LayoutDOM) -- 行的实例列表。可以是以下任何一种- Plot , Widget , Row , Column , ToolbarBox , Spacer .
一行LayoutDOM对象,所有对象都具有相同的大小调整模式。
>>> row(plot1, plot2) >>> row(children=[widgets, plot], sizing_mode='stretch_both')
widgetbox
使用预定义的样式创建一列bokeh小部件。
children (list of Widget) -- 小部件列表。
控件实例的列布局 sizing_mode .
WidgetBox
>>> widgetbox([button, select]) >>> widgetbox(children=[slider], sizing_mode='scale_width')