用于描述不同类型空间(例如,连续或分类)中不同类型值范围的模型,以及“自动调整大小”的选项。
DataRange
基类:bokeh.models.ranges.Range
bokeh.models.ranges.Range
所有数据区域类型的基类。
注解
这是一个抽象基类,用于帮助组织Bokeh模型类型的层次结构。 单独实例化是没有用的。
js_event_callbacks
属性类型: Dict ( String , List ( Instance ( CustomJS ) ) )
Dict
String
List
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)
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也不以任何理由直接使用该名称。
names
属性类型: List ( String )
要查询的名称列表。如果已设置,则仅渲染器的 name 属性将用于自动设置范围。
renderers
属性类型: List ( Instance ( Renderer ) )
Renderer
要自动设置范围的渲染器的显式列表。如果未设置,则默认为绘图上的所有渲染器。
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也不以任何理由直接使用这些标签。
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 字段(如果此模型是子类型)。
{ "id": "7802", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "names": [], "renderers": [], "subscribed_events": [], "tags": [] }
DataRange1d
基类:bokeh.models.ranges.DataRange
bokeh.models.ranges.DataRange
连续标量维中的自动拟合范围。
默认情况下 start 和 end 的范围自动假定关联渲染器的数据的最小值和最大值。
start
end
bounds
属性类型: MinMaxBounds
MinMaxBounds
允许范围到达的界限。通常用于防止用户从数据中平移/缩放等。
默认情况下,边界将为“无”,允许您的绘图尽可能地平移/缩放。如果边界是'auto',它们将被计算为与 DataRange1d .
边界以元组的形式提供 (min, max) 所以不管你的范围是增加还是减少,第一项应该是范围的最小值,第二项应该是最大值。设置 min > max 会导致 ValueError .
(min, max)
min > max
ValueError
如果只想约束打印的一端,可以设置 min 或 max 到 None 例如 DataRange1d(bounds=(None, 12))
min
max
DataRange1d(bounds=(None, 12))
default_span
属性类型: Either ( Float , TimeDelta )
Either
Float
TimeDelta
间隔的默认宽度,以防 start 等于 end (如果与对数轴一起使用,默认的_span为10的幂次)。
属性类型: Either ( Float , Datetime , TimeDelta )
Datetime
显式提供的范围结束。如果提供,将覆盖自动计算的结束值。
flipped
属性类型: Bool
Bool
自动测距时,范围是否应该从其正常方向“翻转”。
follow
属性类型: Enum ( StartEnd )
Enum
StartEnd
将数据配置为遵循一个或另一个数据极端,最大范围大小为 follow_interval .
follow_interval
如果设置为 "start" 然后调整范围,以便 start 始终对应于最小数据值(或最大值,如果 flipped 是 True )
"start"
True
如果设置为 "end" 然后调整范围,以便 end 始终对应最大数据值(或最小值,如果 flipped 是 True )
"end"
如果设置为 None (默认),则自动范围将不跟随,并且范围将包含最小和最大数据值。
follow 不能与边界一起使用,如果设置,边界将设置为 None .
如果 follow 设置为 "start" 或 "end" 那么范围将始终限制为:
abs(r.start - r.end) <= follow_interval
保持。
max_interval
允许范围缩小的级别,用最大可见间隔表示。请注意 bounds 也可以对最大间隔施加隐式约束。
min_interval
允许范围放大的级别,以最小可见间隔表示。如果设置为 None (默认),不绑定最小间隔。
only_visible
如果为真,则不可见的渲染器将被排除在自动边界计算中。
range_padding
要在计算的数据边界周围添加多少填充。
什么时候? range_padding_units 设置为 "percent" ,则扩展范围的范围以使范围 range_padding 大一点。
range_padding_units
"percent"
什么时候? range_padding_units 设置为 "absolute" ,范围范围的开始和结束将按数量扩展 range_padding .
"absolute"
属性类型: Enum ( PaddingUnits )
PaddingUnits
是否 range_padding 应解释为百分比,或绝对量。(默认值: "percent" )
显式提供的范围起点。如果提供,将覆盖自动计算的开始值。
{ "bounds": null, "default_span": 2.0, "end": null, "flipped": false, "follow": null, "follow_interval": null, "id": "7810", "js_event_callbacks": {}, "js_property_callbacks": {}, "max_interval": null, "min_interval": null, "name": null, "names": [], "only_visible": false, "range_padding": 0.1, "range_padding_units": "percent", "renderers": [], "start": null, "subscribed_events": [], "tags": [] }
FactorRange
类别维度的值范围。
除了供应 factors 作为关键字参数 FactorRange 初始化器,也可以使用一系列位置参数实例化:
factors
FactorRange("foo", "bar") # equivalent to FactorRange(factors=["foo", "bar"])
用户通常直接提供分类值:
p.circle(x=["foo", "bar"], ...)
BokehJS将从 "foo" 和 "bar" 到一个叫做 合成坐标 . 在最简单的情况下,因子在合成坐标系中以1.0的距离分隔,但是因子到合成坐标系的精确映射受填充属性以及因子的层数是否有影响。
"foo"
"bar"
用户通常不需要担心这个映射的细节,但是它可以通过添加偏移来微调位置。当提供因子作为坐标或值时,可以通过向因子元组添加最终的数值来在合成坐标空间中添加偏移量。例如:
p.circle(x=[("foo", 0.3), ...], ...)
首先在一个位置旋转 x 通过将0.3添加到 "foo" .
x
允许范围到达的边界(在合成坐标系中)。通常用于防止用户从数据中平移/缩放等。
合成坐标仅在浏览器中根据因子和各种填充属性计算。为了达到适合特定情况的界限,可能需要进行一些实验。
默认情况下,边界将为“无”,允许您的绘图尽可能地平移/缩放。如果边界是'auto',它们将被计算为与 FactorRange .
属性类型: Float
范围的终点,在合成坐标系中。
合成坐标仅在浏览器中根据因子和各种填充属性计算。价值 end 仅在双向通信可用的情况下可用(例如服务器、笔记本)。
factor_padding
在所有最低级别的因素之间添加多少填充。什么时候? factor_padding 为非零,则每个组中的每个因子都将应用填充值。
属性类型: Either ( Seq ( String ) Seq ( Tuple ( String , String )),请 Seq ( Tuple ( String , String , String ) ) )
Seq
Tuple
定义这个范畴范围的一系列因素。
因子可以有1、2或3个级别。对于1级因子,每个因子只是一个字符串。例如:
FactorRange(factors=["sales", "marketing", "engineering"])
定义一个包含三个简单因子的范围,这些因子可能表示不同的业务单元。
对于2级和3级因子,每个因子都是字符串的元组:
FactorRange(factors=[ ["2016", "sales'], ["2016", "marketing'], ["2016", "engineering"], ["2017", "sales'], ["2017", "marketing'], ["2017", "engineering"], ])
定义一个包含六个2级因子的范围,这些因子可能表示按年份分组的三个业务单元。
注意因素和子因素 只能是字符串 .
group_padding
在顶级因素组之间添加多少填充。此属性仅适用于整体范围因子具有两个或三个级别时。例如,使用:
FactorRange(factors=[["foo", "1'], ["foo", "2'], ["bar", "1"]])
顶层组对应于 "foo"` and `` “bar”,并在因子之间应用组填充 ["foo", "2'] 和 ["bar", "1"]
"foo"` and `` “bar”
["foo", "2']
["bar", "1"]
允许范围缩小的级别,表示为合成坐标系中的最大可见间隔。。请注意 bounds 也可以对最大间隔施加隐式约束。
类别的默认“宽度”在合成坐标系中为1.0。但是,因子之间的距离受各种填充属性以及因子是否分组的影响。
允许范围放大的级别,用合成坐标系中的最小可见间隔表示。如果设置为 None (默认),最小间隔不受限制。
要在计算范围边界之外添加多少填充。
范围的起点,在合成坐标系中。
合成坐标仅在浏览器中根据因子和各种填充属性计算。价值 start 仅在双向通信可用的情况下可用(例如服务器、笔记本)。
subgroup_padding
在中层因素组之间添加多少填充。此属性仅适用于整体因素有三个级别时。例如:
FactorRange(factors=[ ['foo', 'A', '1'], ['foo', 'A', '2'], ['foo', 'A', '3'], ['foo', 'B', '2'], ['bar', 'A', '1'], ['bar', 'A', '2'] ])
此属性指定在 ['foo', 'A'] 组中的两个因素之间 [bar]
{ "bounds": null, "factor_padding": 0.0, "factors": [], "group_padding": 1.4, "id": "7830", "js_event_callbacks": {}, "js_property_callbacks": {}, "max_interval": null, "min_interval": null, "name": null, "range_padding": 0, "range_padding_units": "percent", "subgroup_padding": 0.8, "subscribed_events": [], "tags": [] }
Range
基类:bokeh.model.Model
bokeh.model.Model
所有范围类型的基类。
{ "id": "7847", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "subscribed_events": [], "tags": [] }
Range1d
固定的,封闭的范围 [开始,结束] 在连续标量维中。
除了供应 start 和 end 的关键字参数 Range1d 初始化器,您也可以使用方便的语法实例化::
Range(0, 10) # equivalent to Range(start=0, end=10)
如果设置为 'auto' ,将计算范围的开始和结束。
'auto'
边界以元组的形式提供 (min, max) 所以不管你的范围是增加还是减少,第一项应该是范围的最小值,第二项应该是最大值。设置最小值>最大值将导致 ValueError .
默认情况下,边界为 None 以及你想要的平移/缩放图。如果只想约束打印的一端,可以将“最小”或“最大”设置为“无”。
实例:
Range1d(0, 1, bounds='auto') # Auto-bounded to 0 and 1 (Default behavior) Range1d(start=0, end=1, bounds=(0, None)) # Maximum is unbounded, minimum bounded to 0
范围的终点。
允许范围缩小的级别,用最大可见间隔表示。可以是 TimeDelta . 注意 bounds 也可以对最大间隔施加隐式约束。
允许范围放大的级别,以最小可见间隔表示。如果设置为 None (默认情况下),最小间隔未绑定。可能是 TimeDelta .
reset_end
重置时要应用的范围的结尾。如果设置为 None 默认为 end 初始化期间的值。
reset_start
重置后要应用的范围的开始。如果设置为 None 默认为 start 初始化期间的值。
范围的开始。
{ "bounds": null, "end": 1, "id": "7853", "js_event_callbacks": {}, "js_property_callbacks": {}, "max_interval": null, "min_interval": null, "name": null, "reset_end": null, "reset_start": null, "start": 0, "subscribed_events": [], "tags": [] }