bokeh.models.sources

class AjaxDataSource(*args, **kwargs)[源代码]

基类:bokeh.models.sources.WebSource

可以通过对REST端点进行Ajax调用来填充列的数据源。

这个 AjaxDataSource 如果您想制作一个独立的文档(即不受Bokeh服务器的支持),它仍然可以使用现有的restapi进行动态更新,这一点尤其有用。

来自restapi的响应应该与 .data 标准的性质 ColumnDataSource ,即将名称映射到值数组的JSON dict:

{
    'x' : [1, 2, 3, ...],
    'y' : [9, 3, 2, ...]
}

或者,如果restapi返回不同的格式,则 CustomJS 可以提供回调,通过 adapter 属性。

初始数据可以通过指定 data 直接财产。当与 FactorRange ,即使 data `都是空的。

一个完整的例子可以在 examples/howto/ajax_source.py

adapter

属性类型: InstanceCustomJS

一个JavaScript回调,用于将原始JSON响应调整为Bokeh ColumnDataSource 格式。

如果提供了此回调,则在接收到JSON数据后立即执行,但在数据源中追加或替换数据之前。这个 CustomJS 回调将接收 AjaxDataSource 作为 cb_obj 并将接收原始JSON响应作为 cb_data.response . 回调代码应该返回一个 data 适合一个小木桶的物体 ColumnDataSource 列名称映射到列名称。

content_type

属性类型: String

为Ajax请求设置“contentType”参数。

data

属性类型: ColumnDataStringSeqAny ) )

列名到数据序列的映射。列可以是Python列表或元组、NumPy数组等。

.data属性也可以从熊猫数据帧或GroupBy对象设置。在这些情况下,行为与将对象传递给 ColumnDataSource 初始值设定项。

data_url

属性类型: String

要从中获取数据的URL。

http_headers

属性类型: DictStringString

指定要为Ajax请求设置的HTTP头。

例子:

ajax_source.headers = { 'x-my-custom-header': 'some value' }
if_modified

属性类型: Bool

是否包括 If-Modified-Since Ajax请求服务器的标头。如果服务器支持此标头,则将只返回上次请求以来的新数据。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 Model.js_on_change 方法:

callback = CustomJS(code="console.log('stuff')")
plot.x_range.js_on_change('start', callback)
max_size

属性类型: Int

数据列的最大大小。如果新的获取将导致列大于 max_size ,然后删除先前的数据以腾出空间。

method

属性类型: Enum (枚举(POST,GET))

指定用于Ajax请求的HTTP方法(GET或POST)

mode

属性类型: Enum (枚举(replace,append))

是否将新数据附加到现有数据(最多 max_size )或完全替换现有数据。

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也不以任何理由直接使用该名称。

polling_interval

属性类型: Int

更新数据源的轮询间隔(毫秒)。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

selection_policy

属性类型: InstanceSelectionPolicy

一个 SelectionPolicy 它决定如何设置选择。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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也不以任何理由直接使用这些标签。

__init__(*args, **kw)

如果使用单个参数调用,则该参数是dict或 pandas.DataFrame ,将其隐式处理为“data”属性。

add(data, name=None)

向数据源追加新的数据列。

参数
  • data (seq) -- 要添加的新数据

  • name (str, optional) -- 要使用的列名。如果未提供,则生成格式为“Series######”

返回

使用的列名

返回类型

str

apply_theme(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

classmethod from_df(data)

创建一个 dict 一只熊猫的柱子 DataFrame ,适合创建 ColumnDataSource .

参数

data (DataFrame) -- 要转换的数据

返回

双关语 [结构,np.数组]

classmethod from_groupby(data)

创建一个 dict 一只熊猫的柱子 GroupBy ,适合创建 ColumnDataSource .

生成的数据是运行的结果 describe 在小组里。

参数

data (Groupby) -- 要转换的数据

返回

双关语 [结构,np.数组]

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
patch(patches, setter=None)

有效地更新特定位置的数据源列

如果只需要更新 ColumnDataSource ,这种方法可以有效地只更新子集,而不需要发送整个数据集。

应该向此方法传递一个字典,该字典将列名映射到描述要应用的修补程序更改的元组列表。要完全替换列中的单个项,元组的格式应为:

(index, new_value)  # replace a single column value

# or

(slice, new_values) # replace several column values

索引或切片中的值将替换为相应的新值。

对于值为其他数组或列表的列(例如图像或面片图示符),也可以修补“子区域”。在这种情况下,元组的第一项应该是,其第一个元素是CDS修补程序中数组项的索引,其后续元素是整数索引或数组项的切片:

# replace the entire 10th column of the 2nd array:

  +----------------- index of item in column data source
  |
  |       +--------- row subindex into array item
  |       |
  |       |       +- column subindex into array item
  V       V       V
([2, slice(None), 10], new_values)

想象一下2d NumPy数组的列表,上面的补丁大致相当于:

data = [arr1, arr2, ...]  # list of 2d arrays

data[2][:, 10] = new_data

对于可以接受的切片和数据的种类有一些限制。

  • 否定的 startstopstep 切片的值将导致 ValueError .

  • 一片一片, start > stop 会导致 ValueError

  • 当修补1d或2d子项时,子项必须是NumPy数组。

  • 新值必须作为 flattened one-dimensional array 大小合适的。

参数

patches (dict[str, list[tuple]]) -- 每列的修补程序列表

返回

没有

引发

ValueError --

例子:

下面的示例演示如何修补整个列元素。在这种情况下,

source = ColumnDataSource(data=dict(foo=[10, 20, 30], bar=[100, 200, 300]))

patches = {
    'foo' : [ (slice(2), [11, 12]) ],
    'bar' : [ (0, 101), (2, 301) ],
}

source.patch(patches)

此操作之后 source.data 将:

dict(foo=[11, 12, 30], bar=[101, 200, 301])

有关更全面的完整示例,请参见 examples/howto/patch_app.py .

classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove(name)

删除一列数据。

参数

name (str) -- 要删除的列的名称

返回

没有

注解

如果列名不存在,将发出警告。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

stream(new_data, rollover=None)

使用新的仅附加数据高效地更新数据源列。

在需要更新中的数据列的情况下,此方法可以有效地仅发送新数据,而不需要重新发送整个数据集。

参数
  • new_data (dict[str, seq]) -- 列名到要附加到每个列的新数据序列的映射。数据源的所有列都必须存在于 new_data ,具有相同长度的附加数据。

  • rollover (int, optional) -- 列大小的最大值,超过该值,从列开始的数据开始被丢弃。如果没有,则列将继续无限增长(默认值:无)

返回

没有

引发

ValueError --

例子:

source = ColumnDataSource(data=dict(foo=[], bar=[]))

# has new, identical-length updates for all columns in source
new_data = {
    'foo' : [10, 20],
    'bar' : [100, 200],
}

source.stream(new_data)
themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_df()

将此数据源转换为pandas DataFrame .

返回

DataFrame

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property column_names

此数据源中列名的列表。

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "adapter": null,
  "content_type": "application/json",
  "data": {},
  "data_url": null,
  "http_headers": {},
  "id": "8023",
  "if_modified": false,
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "max_size": null,
  "method": "POST",
  "mode": "replace",
  "name": null,
  "polling_interval": null,
  "selected": {
    "id": "8025"
  },
  "selection_policy": {
    "id": "8024"
  },
  "subscribed_events": [],
  "tags": []
}
class CDSView(*args, **kwargs)[源代码]

基类:bokeh.model.Model

一个 ColumnDataSource 表示按行排列的子集。

filters

属性类型: ListInstanceFilter ) )

视图包含的筛选器列表。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 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也不以任何理由直接使用该名称。

source

属性类型: InstanceColumnarDataSource

这个 ColumnDataSource 与此视图关联。用于确定列的长度。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "filters": [],
  "id": "8043",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "source": null,
  "subscribed_events": [],
  "tags": []
}
class ColumnDataSource(*args, **kwargs)[源代码]

基类:bokeh.models.sources.ColumnarDataSource

将列的名称映射到序列或数组。

这个 ColumnDataSource 是Bokeh的一个基本数据结构。大多数绘图、数据表等将由 ColumnDataSource .

如果 ColumnDataSource 使用可以是以下任意一个参数的单个参数调用初始值设定项:

  • Python dict 它将字符串名称映射到值序列,例如列表、数组等。

    data = {'x': [1,2,3,4], 'y': np.ndarray([10.0, 20.0, 30.0, 40.0])}
    
    source = ColumnDataSource(data)
    

注解

ColumnDataSource 只创建 data . 使用例如。 ColumnDataSource(copy.deepcopy(data)) 如果从另一个初始化 ColumnDataSource.data 要保持独立的对象。

  • 熊猫 DataFrame 对象

    source = ColumnDataSource(df)
    

    在这种情况下,cd的列将与 DataFrame . 如果 DataFrame 列有多个级别,将使用下划线将其展平(例如level_0_col_level_1_col)。的索引 DataFrame 将被夷为平地 Index 如果是一个元组 MultiIndex ,然后使用 reset_index . 如果索引是命名的,结果将是一个同名的列;如果索引是命名的,则结果将是一个同名的列;如果索引是命名的,则结果将是一个具有相同名称的列 MultiIndex . 如果 Index 没有名字或者 MultiIndex 无法展开/确定名称 reset_index 函数将命名索引列 indexlevel_0 如果名字 index 不可用。

  • 熊猫 GroupBy 对象

    group = df.groupby(('colA', 'ColB'))
    

    在这种情况下,cd将具有与调用结果相对应的列 group.describe() . 这个 describe 方法为统计度量生成列,例如 meancount 对于所有未分组的原始列。CDS列是通过将原始列名与计算出的度量值连接起来形成的。例如,如果 DataFrame 有列 'year''mpg' . 然后就过去了 df.groupby('year') 到一个CD将导致列,如 'mpg_mean'

    如果 GroupBy.describe 结果有一个命名的索引列,那么CDS也会有一个同名的列。但是,如果索引名称(或 MultiIndexNone ,则cd将有一个列,该列通常命名为 index 用于索引。

    注意这种适应能力 GroupBy 物体只能和熊猫一起使用 >=0.20.0 .

注解

有一个隐含的假设,即 ColumnDataSource 在任何时候都有相同的长度。因此,通常最好更新 .data 数据源的属性“立即全部”。

data

属性类型: ColumnDataStringSeqAny ) )

列名到数据序列的映射。列可以是Python列表或元组、NumPy数组等。

.data属性也可以从熊猫数据帧或GroupBy对象设置。在这些情况下,行为与将对象传递给 ColumnDataSource 初始值设定项。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 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也不以任何理由直接使用该名称。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

selection_policy

属性类型: InstanceSelectionPolicy

一个 SelectionPolicy 它决定如何设置选择。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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也不以任何理由直接使用这些标签。

__init__(*args, **kw)[源代码]

如果使用单个参数调用,则该参数是dict或 pandas.DataFrame ,将其隐式处理为“data”属性。

add(data, name=None)[源代码]

向数据源追加新的数据列。

参数
  • data (seq) -- 要添加的新数据

  • name (str, optional) -- 要使用的列名。如果未提供,则生成格式为“Series######”

返回

使用的列名

返回类型

str

apply_theme(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

classmethod from_df(data)[源代码]

创建一个 dict 一只熊猫的柱子 DataFrame ,适合创建 ColumnDataSource .

参数

data (DataFrame) -- 要转换的数据

返回

双关语 [结构,np.数组]

classmethod from_groupby(data)[源代码]

创建一个 dict 一只熊猫的柱子 GroupBy ,适合创建 ColumnDataSource .

生成的数据是运行的结果 describe 在小组里。

参数

data (Groupby) -- 要转换的数据

返回

双关语 [结构,np.数组]

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
patch(patches, setter=None)[源代码]

有效地更新特定位置的数据源列

如果只需要更新 ColumnDataSource ,这种方法可以有效地只更新子集,而不需要发送整个数据集。

应该向此方法传递一个字典,该字典将列名映射到描述要应用的修补程序更改的元组列表。要完全替换列中的单个项,元组的格式应为:

(index, new_value)  # replace a single column value

# or

(slice, new_values) # replace several column values

索引或切片中的值将替换为相应的新值。

对于值为其他数组或列表的列(例如图像或面片图示符),也可以修补“子区域”。在这种情况下,元组的第一项应该是,其第一个元素是CDS修补程序中数组项的索引,其后续元素是整数索引或数组项的切片:

# replace the entire 10th column of the 2nd array:

  +----------------- index of item in column data source
  |
  |       +--------- row subindex into array item
  |       |
  |       |       +- column subindex into array item
  V       V       V
([2, slice(None), 10], new_values)

想象一下2d NumPy数组的列表,上面的补丁大致相当于:

data = [arr1, arr2, ...]  # list of 2d arrays

data[2][:, 10] = new_data

对于可以接受的切片和数据的种类有一些限制。

  • 否定的 startstopstep 切片的值将导致 ValueError .

  • 一片一片, start > stop 会导致 ValueError

  • 当修补1d或2d子项时,子项必须是NumPy数组。

  • 新值必须作为 flattened one-dimensional array 大小合适的。

参数

patches (dict[str, list[tuple]]) -- 每列的修补程序列表

返回

没有

引发

ValueError --

例子:

下面的示例演示如何修补整个列元素。在这种情况下,

source = ColumnDataSource(data=dict(foo=[10, 20, 30], bar=[100, 200, 300]))

patches = {
    'foo' : [ (slice(2), [11, 12]) ],
    'bar' : [ (0, 101), (2, 301) ],
}

source.patch(patches)

此操作之后 source.data 将:

dict(foo=[11, 12, 30], bar=[101, 200, 301])

有关更全面的完整示例,请参见 examples/howto/patch_app.py .

classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove(name)[源代码]

删除一列数据。

参数

name (str) -- 要删除的列的名称

返回

没有

注解

如果列名不存在,将发出警告。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

stream(new_data, rollover=None)[源代码]

使用新的仅附加数据高效地更新数据源列。

在需要更新中的数据列的情况下,此方法可以有效地仅发送新数据,而不需要重新发送整个数据集。

参数
  • new_data (dict[str, seq]) -- 列名到要附加到每个列的新数据序列的映射。数据源的所有列都必须存在于 new_data ,具有相同长度的附加数据。

  • rollover (int, optional) -- 列大小的最大值,超过该值,从列开始的数据开始被丢弃。如果没有,则列将继续无限增长(默认值:无)

返回

没有

引发

ValueError --

例子:

source = ColumnDataSource(data=dict(foo=[], bar=[]))

# has new, identical-length updates for all columns in source
new_data = {
    'foo' : [10, 20],
    'bar' : [100, 200],
}

source.stream(new_data)
themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_df()[源代码]

将此数据源转换为pandas DataFrame .

返回

DataFrame

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property column_names

此数据源中列名的列表。

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "data": {},
  "id": "8051",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "selected": {
    "id": "8053"
  },
  "selection_policy": {
    "id": "8052"
  },
  "subscribed_events": [],
  "tags": []
}
class ColumnarDataSource(*args, **kwargs)[源代码]

基类:bokeh.models.sources.DataSource

数据源类型的基类,可以映射到列格式。

注解

这是一个抽象基类,用于帮助组织Bokeh模型类型的层次结构。 单独实例化是没有用的。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 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也不以任何理由直接使用该名称。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

selection_policy

属性类型: InstanceSelectionPolicy

一个 SelectionPolicy 它决定如何设置选择。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "id": "8062",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "selected": {
    "id": "8064"
  },
  "selection_policy": {
    "id": "8063"
  },
  "subscribed_events": [],
  "tags": []
}
class DataSource(*args, **kwargs)[源代码]

基类:bokeh.model.Model

数据源的基类型。

注解

这是一个抽象基类,用于帮助组织Bokeh模型类型的层次结构。 单独实例化是没有用的。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 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也不以任何理由直接使用该名称。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "id": "8072",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "selected": {
    "id": "8073"
  },
  "subscribed_events": [],
  "tags": []
}
class GeoJSONDataSource(*args, **kwargs)[源代码]

基类:bokeh.models.sources.ColumnarDataSource

geojson

属性类型: JSON

包含绘图功能的GeoJSON。目前 GeoJSONDataSource 只能处理a FeatureCollectionGeometryCollection .

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 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也不以任何理由直接使用该名称。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

selection_policy

属性类型: InstanceSelectionPolicy

一个 SelectionPolicy 它决定如何设置选择。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "geojson": null,
  "id": "8080",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "selected": {
    "id": "8082"
  },
  "selection_policy": {
    "id": "8081"
  },
  "subscribed_events": [],
  "tags": []
}
class ServerSentDataSource(*args, **kwargs)[源代码]

基类:bokeh.models.sources.WebSource

可以通过接收服务器发送的事件终结点填充列的数据源。

adapter

属性类型: InstanceCustomJS

一个JavaScript回调,用于将原始JSON响应调整为Bokeh ColumnDataSource 格式。

如果提供了此回调,则在接收到JSON数据后立即执行,但在数据源中追加或替换数据之前。这个 CustomJS 回调将接收 AjaxDataSource 作为 cb_obj 并将接收原始JSON响应作为 cb_data.response . 回调代码应该返回一个 data 适合一个小木桶的物体 ColumnDataSource 列名称映射到列名称。

data

属性类型: ColumnDataStringSeqAny ) )

列名到数据序列的映射。列可以是Python列表或元组、NumPy数组等。

.data属性也可以从熊猫数据帧或GroupBy对象设置。在这些情况下,行为与将对象传递给 ColumnDataSource 初始值设定项。

data_url

属性类型: String

要从中获取数据的URL。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 Model.js_on_change 方法:

callback = CustomJS(code="console.log('stuff')")
plot.x_range.js_on_change('start', callback)
max_size

属性类型: Int

数据列的最大大小。如果新的获取将导致列大于 max_size ,然后删除先前的数据以腾出空间。

mode

属性类型: Enum (枚举(replace,append))

是否将新数据附加到现有数据(最多 max_size )或完全替换现有数据。

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也不以任何理由直接使用该名称。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

selection_policy

属性类型: InstanceSelectionPolicy

一个 SelectionPolicy 它决定如何设置选择。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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也不以任何理由直接使用这些标签。

__init__(*args, **kw)

如果使用单个参数调用,则该参数是dict或 pandas.DataFrame ,将其隐式处理为“data”属性。

add(data, name=None)

向数据源追加新的数据列。

参数
  • data (seq) -- 要添加的新数据

  • name (str, optional) -- 要使用的列名。如果未提供,则生成格式为“Series######”

返回

使用的列名

返回类型

str

apply_theme(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

classmethod from_df(data)

创建一个 dict 一只熊猫的柱子 DataFrame ,适合创建 ColumnDataSource .

参数

data (DataFrame) -- 要转换的数据

返回

双关语 [结构,np.数组]

classmethod from_groupby(data)

创建一个 dict 一只熊猫的柱子 GroupBy ,适合创建 ColumnDataSource .

生成的数据是运行的结果 describe 在小组里。

参数

data (Groupby) -- 要转换的数据

返回

双关语 [结构,np.数组]

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
patch(patches, setter=None)

有效地更新特定位置的数据源列

如果只需要更新 ColumnDataSource ,这种方法可以有效地只更新子集,而不需要发送整个数据集。

应该向此方法传递一个字典,该字典将列名映射到描述要应用的修补程序更改的元组列表。要完全替换列中的单个项,元组的格式应为:

(index, new_value)  # replace a single column value

# or

(slice, new_values) # replace several column values

索引或切片中的值将替换为相应的新值。

对于值为其他数组或列表的列(例如图像或面片图示符),也可以修补“子区域”。在这种情况下,元组的第一项应该是,其第一个元素是CDS修补程序中数组项的索引,其后续元素是整数索引或数组项的切片:

# replace the entire 10th column of the 2nd array:

  +----------------- index of item in column data source
  |
  |       +--------- row subindex into array item
  |       |
  |       |       +- column subindex into array item
  V       V       V
([2, slice(None), 10], new_values)

想象一下2d NumPy数组的列表,上面的补丁大致相当于:

data = [arr1, arr2, ...]  # list of 2d arrays

data[2][:, 10] = new_data

对于可以接受的切片和数据的种类有一些限制。

  • 否定的 startstopstep 切片的值将导致 ValueError .

  • 一片一片, start > stop 会导致 ValueError

  • 当修补1d或2d子项时,子项必须是NumPy数组。

  • 新值必须作为 flattened one-dimensional array 大小合适的。

参数

patches (dict[str, list[tuple]]) -- 每列的修补程序列表

返回

没有

引发

ValueError --

例子:

下面的示例演示如何修补整个列元素。在这种情况下,

source = ColumnDataSource(data=dict(foo=[10, 20, 30], bar=[100, 200, 300]))

patches = {
    'foo' : [ (slice(2), [11, 12]) ],
    'bar' : [ (0, 101), (2, 301) ],
}

source.patch(patches)

此操作之后 source.data 将:

dict(foo=[11, 12, 30], bar=[101, 200, 301])

有关更全面的完整示例,请参见 examples/howto/patch_app.py .

classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove(name)

删除一列数据。

参数

name (str) -- 要删除的列的名称

返回

没有

注解

如果列名不存在,将发出警告。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

stream(new_data, rollover=None)

使用新的仅附加数据高效地更新数据源列。

在需要更新中的数据列的情况下,此方法可以有效地仅发送新数据,而不需要重新发送整个数据集。

参数
  • new_data (dict[str, seq]) -- 列名到要附加到每个列的新数据序列的映射。数据源的所有列都必须存在于 new_data ,具有相同长度的附加数据。

  • rollover (int, optional) -- 列大小的最大值,超过该值,从列开始的数据开始被丢弃。如果没有,则列将继续无限增长(默认值:无)

返回

没有

引发

ValueError --

例子:

source = ColumnDataSource(data=dict(foo=[], bar=[]))

# has new, identical-length updates for all columns in source
new_data = {
    'foo' : [10, 20],
    'bar' : [100, 200],
}

source.stream(new_data)
themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_df()

将此数据源转换为pandas DataFrame .

返回

DataFrame

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property column_names

此数据源中列名的列表。

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "adapter": null,
  "data": {},
  "data_url": null,
  "id": "8091",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "max_size": null,
  "mode": "replace",
  "name": null,
  "selected": {
    "id": "8093"
  },
  "selection_policy": {
    "id": "8092"
  },
  "subscribed_events": [],
  "tags": []
}
class WebSource(*args, **kwargs)[源代码]

基类:bokeh.models.sources.ColumnDataSource

可从数据URL更新的web列数据源的基类。

注解

这个基类对于单独实例化通常是没有用的。

注解

这是一个抽象基类,用于帮助组织Bokeh模型类型的层次结构。 单独实例化是没有用的。

adapter

属性类型: InstanceCustomJS

一个JavaScript回调,用于将原始JSON响应调整为Bokeh ColumnDataSource 格式。

如果提供了此回调,则在接收到JSON数据后立即执行,但在数据源中追加或替换数据之前。这个 CustomJS 回调将接收 AjaxDataSource 作为 cb_obj 并将接收原始JSON响应作为 cb_data.response . 回调代码应该返回一个 data 适合一个小木桶的物体 ColumnDataSource 列名称映射到列名称。

data

属性类型: ColumnDataStringSeqAny ) )

列名到数据序列的映射。列可以是Python列表或元组、NumPy数组等。

.data属性也可以从熊猫数据帧或GroupBy对象设置。在这些情况下,行为与将对象传递给 ColumnDataSource 初始值设定项。

data_url

属性类型: String

要从中获取数据的URL。

js_event_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

事件名称到列表的映射 CustomJS 回调。

通常,应该使用 Model.js_on_event 方法:

callback = CustomJS(code="console.log('tap event occurred')")
plot.js_on_event('tap', callback)
js_property_callbacks

属性类型: DictStringListInstanceCustomJS ) ) )

属性名到列表的映射 CustomJS 回调,在创建文档时在BokehJS侧设置。

通常,应该使用 Model.js_on_change 方法:

callback = CustomJS(code="console.log('stuff')")
plot.x_range.js_on_change('start', callback)
max_size

属性类型: Int

数据列的最大大小。如果新的获取将导致列大于 max_size ,然后删除先前的数据以腾出空间。

mode

属性类型: Enum (枚举(replace,append))

是否将新数据附加到现有数据(最多 max_size )或完全替换现有数据。

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也不以任何理由直接使用该名称。

selected

属性类型: InstanceSelection

一个 Selection 它指示此上选定的索引 DataSource . 这是只读属性。您只能更改此对象的属性来更改选择(例如。, selected.indices

selection_policy

属性类型: InstanceSelectionPolicy

一个 SelectionPolicy 它决定如何设置选择。

subscribed_events

属性类型: ListString

Python回调订阅的事件列表。对于这个模型,这是一组将从BokehJS传递回Python的事件。

tags

属性类型: ListAny

附加到此模型的任意用户提供的值的可选列表。

当查询文档以检索特定的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也不以任何理由直接使用这些标签。

__init__(*args, **kw)

如果使用单个参数调用,则该参数是dict或 pandas.DataFrame ,将其隐式处理为“data”属性。

add(data, name=None)

向数据源追加新的数据列。

参数
  • data (seq) -- 要添加的新数据

  • name (str, optional) -- 要使用的列名。如果未提供,则生成格式为“Series######”

返回

使用的列名

返回类型

str

apply_theme(property_values)

应用一组主题值,这些值将被使用而不是默认值,但不会覆盖应用程序集值。

传入的字典可以保持原样,并与其他实例共享以节省内存(因此无论是调用方还是 HasProps 实例应该修改它)。

参数

property_values (dict) -- 主题值用于替代默认值

返回

没有

classmethod dataspecs()

收集所有人的名字 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称 DataSpec 性质

返回类型

set[str]

classmethod dataspecs_with_props()

收集一张记录所有人姓名的字典 DataSpec 类的属性。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

名称和 DataSpec 性质

返回类型

dict[str, DataSpec]

equals(other)

模型的结构相等。

参数

other (HasProps) -- 要比较的另一个实例

返回

如果属性在结构上相等,则为True,否则为False

classmethod from_df(data)

创建一个 dict 一只熊猫的柱子 DataFrame ,适合创建 ColumnDataSource .

参数

data (DataFrame) -- 要转换的数据

返回

双关语 [结构,np.数组]

classmethod from_groupby(data)

创建一个 dict 一只熊猫的柱子 GroupBy ,适合创建 ColumnDataSource .

生成的数据是运行的结果 describe 在小组里。

参数

data (Groupby) -- 要转换的数据

返回

双关语 [结构,np.数组]

使用JavaScript链接两个Bokeh模型属性。

这是一种方便的方法,它简化了添加一个CustomJS回调,以便在另一个Bokeh模型属性更改值时更新它。

参数
  • attr (str) -- 此模型上的Bokeh属性的名称

  • other (Model) -- 要链接到的Bokeh模型自我属性

  • other_attr (str) -- 上的财产 other 连接在一起

  • attr_selector (Union[int, str]) -- 链接可订阅项中的项的索引 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(event, *callbacks)

附A CustomJS 对任意BokehJS模型事件的回调。

在BokehJS方面,模型属性的更改事件具有以下形式 "change:property_name" . 为了方便起见,如果传递给此方法的事件名也是模型上某个属性的名称,那么它的前缀将是 "change:" 自动:

# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)

但是,除了属性更改事件之外,还有其他类型的事件可以用来响应。例如,每当数据流式传输到 ColumnDataSource 使用 "stream" 源上的事件:

source.js_on_change('streaming', callback)
layout(side, plot)
classmethod lookup(name)

找到 PropertyDescriptor 对于类上的Bokeh属性,给定属性名。

参数

name (str) -- 要搜索的属性的名称

返回

名为的属性的描述符 name

返回类型

PropertyDescriptor

on_change(attr, *callbacks)

在此对象上添加回调以在 attr 变化。

参数
  • attr (str) -- 此对象的属性名

  • *callbacks (callable) -- 要注册的回调函数

返回

没有

例子:

widget.on_change('value', callback1, callback2, ..., callback_n)
patch(patches, setter=None)

有效地更新特定位置的数据源列

如果只需要更新 ColumnDataSource ,这种方法可以有效地只更新子集,而不需要发送整个数据集。

应该向此方法传递一个字典,该字典将列名映射到描述要应用的修补程序更改的元组列表。要完全替换列中的单个项,元组的格式应为:

(index, new_value)  # replace a single column value

# or

(slice, new_values) # replace several column values

索引或切片中的值将替换为相应的新值。

对于值为其他数组或列表的列(例如图像或面片图示符),也可以修补“子区域”。在这种情况下,元组的第一项应该是,其第一个元素是CDS修补程序中数组项的索引,其后续元素是整数索引或数组项的切片:

# replace the entire 10th column of the 2nd array:

  +----------------- index of item in column data source
  |
  |       +--------- row subindex into array item
  |       |
  |       |       +- column subindex into array item
  V       V       V
([2, slice(None), 10], new_values)

想象一下2d NumPy数组的列表,上面的补丁大致相当于:

data = [arr1, arr2, ...]  # list of 2d arrays

data[2][:, 10] = new_data

对于可以接受的切片和数据的种类有一些限制。

  • 否定的 startstopstep 切片的值将导致 ValueError .

  • 一片一片, start > stop 会导致 ValueError

  • 当修补1d或2d子项时,子项必须是NumPy数组。

  • 新值必须作为 flattened one-dimensional array 大小合适的。

参数

patches (dict[str, list[tuple]]) -- 每列的修补程序列表

返回

没有

引发

ValueError --

例子:

下面的示例演示如何修补整个列元素。在这种情况下,

source = ColumnDataSource(data=dict(foo=[10, 20, 30], bar=[100, 200, 300]))

patches = {
    'foo' : [ (slice(2), [11, 12]) ],
    'bar' : [ (0, 101), (2, 301) ],
}

source.patch(patches)

此操作之后 source.data 将:

dict(foo=[11, 12, 30], bar=[101, 200, 301])

有关更全面的完整示例,请参见 examples/howto/patch_app.py .

classmethod properties(with_bases=True)

收集此类的属性名称。

这种方法 任选地 遍历类层次结构并包含在任何父类上定义的属性。

参数

with_bases (bool, optional) -- 是否在结果中包含在父类上定义的属性。(默认值:True)

返回

属性名称

返回类型

set[str]

classmethod properties_containers()

收集此类上所有容器属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

容器属性名称

返回类型

set[str]

classmethod properties_with_refs()

收集该类上也有引用的所有属性的名称。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

返回

具有引用的属性的名称

返回类型

set[str]

properties_with_values(include_defaults: bool = True) → Dict[str, Any]

收集将属性名称映射到其值的dict。

这种方法 总是 遍历类层次结构并包含在任何父类上定义的属性。

跳过不可序列化的属性,属性值采用“序列化”格式,这可能与通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数

include_defaults (bool, optional) -- 是否包含自创建对象后尚未显式设置的属性。(默认值:True)

返回

从属性名到属性值的映射

返回类型

dict

query_properties_with_values(query, include_defaults=True)

查询的属性值 HasProps 带有谓词的实例。

参数
  • query (callable) -- 接受属性描述符并返回True或False的可调用文件

  • include_defaults (bool, optional) -- 是否包含尚未由用户显式设置的属性(默认值:True)

返回

为匹配的属性映射属性名称和值

返回类型

dict

references()

返回全部 Models 此对象引用的。

remove(name)

删除一列数据。

参数

name (str) -- 要删除的列的名称

返回

没有

注解

如果列名不存在,将发出警告。

remove_on_change(attr, *callbacks)

从此对象中删除回调

select(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。

参数

selector (JSON-like) --

返回

SEQ [模型]

select_one(selector)

查询此对象及其所有引用以查找与给定选择器匹配的对象。如果找到多个对象,则引发错误。返回单个匹配的对象,如果找不到任何对象,则返回无:param selector::type selector:JSON like

返回

模型

set_from_json(name, json, models=None, setter=None)

从JSON设置此对象的属性值。

参数
  • name -- (str):要设置的属性的名称

  • json -- (JSON value):要设置为的属性的值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

set_select(selector, updates)

更新与具有指定属性/值的给定选择器匹配的对象将更新。

参数
  • selector (JSON-like) --

  • updates (dict) --

返回

没有

stream(new_data, rollover=None)

使用新的仅附加数据高效地更新数据源列。

在需要更新中的数据列的情况下,此方法可以有效地仅发送新数据,而不需要重新发送整个数据集。

参数
  • new_data (dict[str, seq]) -- 列名到要附加到每个列的新数据序列的映射。数据源的所有列都必须存在于 new_data ,具有相同长度的附加数据。

  • rollover (int, optional) -- 列大小的最大值,超过该值,从列开始的数据开始被丢弃。如果没有,则列将继续无限增长(默认值:无)

返回

没有

引发

ValueError --

例子:

source = ColumnDataSource(data=dict(foo=[], bar=[]))

# has new, identical-length updates for all columns in source
new_data = {
    'foo' : [10, 20],
    'bar' : [100, 200],
}

source.stream(new_data)
themed_values()

获取任何主题提供的覆盖。

结果以dict形式从属性名返回到值,或者 None 如果没有主题覆盖此实例的任何值。

返回

不记名

to_df()

将此数据源转换为pandas DataFrame .

返回

DataFrame

to_json(include_defaults)

返回此对象属性的字典,只包含“JSON类型”(string、number、boolean、none、dict、list)。

对其他对象的引用被序列化为“refs”(只是对象ID和类型信息),因此反序列化程序需要单独拥有这些其他对象的完整属性。

没有对应的 from_json() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

to_json_string(include_defaults)

返回编码此对象属性的JSON字符串。

对其他对象的引用被序列化为引用(仅对象ID和类型信息),因此反序列化程序将需要单独拥有这些其他对象的完整属性。

没有对应的 from_json_string() 因为反序列化对象通常是在文档上下文中完成的(因为文档可以解析引用)。

在大多数情况下,最好序列化和反序列化整个文档。

参数

include_defaults (bool) -- 是否包含未从默认值更改的属性

trigger(attr, old, new, hint=None, setter=None)
unapply_theme()

删除所有主题值并恢复默认值。

返回

没有

update(**kwargs)

从给定的关键字参数更新对象的属性。

返回

没有

实际案例

以下是等效的:

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, models=None, setter=None)

对象的属性从字典中更新。

参数
  • json_attributes -- (JSON dict):要更新的属性和值

  • models (dict or None, optional) -- 模型ID到模型的映射(默认值:无)在要更新的属性也有引用的值的情况下,需要这样做。

  • setter (ClientSession or ServerSession or None, optional) -- 这是用来防止“飞镖”更新到博克应用程序。在Bokeh服务器应用程序的上下文中,对属性的传入更新将使用正在进行更新的会话进行注释。此值通过更新触发的任何后续更改通知传播。会话可以将事件设置程序与其自身进行比较,并禁止任何源自自身的更新。

返回

没有

property column_names

此数据源中列名的列表。

property document

这个 Document 此模型附加到(可以是 None

property struct

此模型的Bokeh协议“结构”,即以下形式的dict:

{
    'type' : << view model name >>
    'id'   : << unique model id >>
}

此外,可能还有 subtype 字段(如果此模型是子类型)。

JSON Prototype
{
  "adapter": null,
  "data": {},
  "data_url": null,
  "id": "8106",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "max_size": null,
  "mode": "replace",
  "name": null,
  "selected": {
    "id": "8108"
  },
  "selection_policy": {
    "id": "8107"
  },
  "subscribed_events": [],
  "tags": []
}