bokeh.events#

表示可用于触发回调的细粒度事件。

Bokeh 文档和应用程序能够支持各种类型的交互。这些交互通常与事件相关联,例如鼠标或触摸事件、交互式降采样模式激活、控件或工具事件等等。此模块中的类表示这些不同的事件,以便可以在事件发生时附加和执行回调。

可以使用 CustomJS 回调来响应事件,无论是否使用 Bokeh 服务器,这都可以正常工作。可以通过将事件类和 CustomJS 模型传递给 js_on_event() 方法来实现。当 CustomJS 在浏览器中执行时,其 cb_obj 参数将包含触发回调的具体事件对象。

from bokeh.events import ButtonClick
from bokeh.models import Button, CustomJS

button = Button()

button.js_on_event(ButtonClick, CustomJS(code='console.log("JS:Click")'))

或者,可以在 Bokeh 服务器上运行的 Bokeh 应用程序上下文中,在事件发生时触发 Python 代码运行。可以通过将事件类和回调函数传递给 on_event() 方法来实现。回调应接受单个参数 event,该参数将被传递触发回调的具体事件对象。

from bokeh.events import ButtonClick
from bokeh.models import Button

button = Button()

def callback(event):
    print('Python:Click')

button.on_event(ButtonClick, callback)

注意

事件没有节流。某些事件(例如 MouseMove)可能会以非常高的速率触发。

class AxisClick(model: Axis | None, value: float | FactorType | None = None)[source]#

声明坐标轴被点击的位置。

对于连续数值坐标轴,该值将是一个数字。对于对数坐标轴,此数字是对数十年。

对于分类坐标轴,该值将是一个分类因子,即一个字符串或字符串列表,表示被点击的最接近的分类因子。

class ButtonClick(model: AbstractButton | None)[source]#

声明 Bokeh 按钮控件上的按钮点击事件。

class ConnectionLost[source]#

声明与服务器/客户端的连接断开时。

注意

要在独立嵌入模式下为此事件注册 JS 回调,必须使用 curdoc() 或显式的 Document 实例,例如:

from bokeh.io import curdoc
curdoc().js_on_event("document_ready", handler)
class DocumentEvent[source]#

所有 Bokeh 文档事件的基类。

此基类通常不适合自行实例化。

class DocumentReady[source]#

声明文档完全空闲时。

注意

要在独立嵌入模式下为此事件注册 JS 回调,必须使用 curdoc() 或显式的 Document 实例,例如:

from bokeh.io import curdoc
curdoc().js_on_event("document_ready", handler)
class DoubleTap(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明 Bokeh 绘图上的双击或双击事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

class Event[source]#

所有 Bokeh 事件的基类。

此基类通常不适合自行实例化。

to_serializable(serializer: Serializer) BokehEventRep[source]#

将此对象转换为可序列化的表示形式。

class LODEnd(model: Plot | None)[source]#

声明绘图上“交互式细节级别”模式的结束。

在平移或缩放等交互操作期间,Bokeh 可以选择性地临时绘制缩减的数据集,以保持高交互速率。这被称为交互式细节级别 (LOD) 模式。此事件在 LOD 模式刚刚结束时触发。

class LODStart(model: Plot | None)[source]#

声明绘图上“交互式细节级别”模式的开始。

在平移或缩放等交互操作期间,Bokeh 可以选择性地临时绘制缩减的数据集,以保持高交互速率。这被称为交互式细节级别 (LOD) 模式。此事件在 LOD 模式刚刚开始时触发。

class LegendItemClick(model: Legend, item: LegendItem)[source]#

声明 Bokeh 图例项目上的点击事件。

class MenuItemClick(model: Model, item: str | None = None)[source]#

声明 Bokeh 菜单项目上的按钮点击事件。

class ModelEvent(model: Model | None)[source]#

所有 Bokeh 模型事件的基类。

此基类通常不适合自行实例化。

__init__(model: Model | None) None[source]#

创建一个新的基本事件。

参数:

model (Model) – 要在其上注册事件回调的 Bokeh 模型

class MouseEnter(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明鼠标进入 Bokeh 绘图的事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

当鼠标离开整个绘图画布时(包括任何边框填充以及坐标轴或图例的空间),将生成进入事件。

class MouseLeave(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明鼠标离开 Bokeh 绘图的事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

当鼠标离开整个绘图画布时(包括任何边框填充以及坐标轴或图例的空间),将生成离开事件。

class MouseMove(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的鼠标移动事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件可能以非常高的频率触发,可能会增加网络流量或 CPU 负载。

class MouseWheel(model: Plot | None, *, delta: float | None = None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的鼠标滚轮事件。

delta#

(带符号的)滚动速度

类型:

浮点数

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

默认情况下,除非 WheelZoomToolWheelPanTool 处于活动状态,否则 Bokeh 图表不会阻止默认的滚动事件。这在未来的版本中可能会更改。

class Pan(model: Plot | None, *, delta_x: float | None = None, delta_y: float | None = None, direction: Literal[-1, -1] | None = None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的平移事件。

delta_x#

x 方向的滚动量

类型:

浮点数

delta_y#

y 方向的滚动量

类型:

浮点数

direction#

滚动的方向 (1 或 -1)

类型:

浮点数

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

class PanEnd(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上平移事件结束。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

class PanStart(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上平移事件开始。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

class Pinch(model: Plot | None, *, scale: float | None = None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的捏合事件。

scale#

(带符号的)缩放量

类型:

浮点数

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件仅适用于启用触摸的设备。

class PinchEnd(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的捏合事件结束。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件仅适用于启用触摸的设备。

class PinchStart(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的捏合事件开始。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件仅适用于启用触摸的设备。

class PlotEvent(model: Plot | None)[source]#

适用于 Plot 模型的所有事件的基类。

class PointEvent(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

与特定 (x,y) 点关联的 UI 事件的基类。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

请注意,数据空间坐标是相对于默认范围,而不是任何额外范围,并且屏幕空间原点位于 HTML 画布的左上角。

class Press(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的按压事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

class PressUp(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的抬起事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

class RangesUpdate(model: Plot | None, *, x0: float | None = None, x1: float | None = None, y0: float | None = None, y1: float | None = None)[source]#

声明在单个事件中组合的范围更新。

x0#

默认 x 轴范围的起始 x 坐标

类型:

浮点数

x1#

默认 x 轴范围的结束 x 坐标

类型:

浮点数

y0#

默认 y 轴范围的起始 y 坐标

类型:

浮点数

y1#

默认 x 轴范围的结束 y 坐标

类型:

浮点数

回调函数可以添加到范围的 startend 属性,以响应范围变化,但这可能会导致单个逻辑操作(例如平移或缩放)调用多个回调函数。此事件由支持的工具在整个范围更新完成时发出,以便提供一个可以响应的单个事件。

class Reset(model: Plot | None)[source]#

声明在图表 ResetTool 上的按钮点击事件。

class Rotate(model: Plot | None, *, rotation: float | None = None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的旋转事件。

rotation#

已完成的旋转(度)

类型:

浮点数

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件仅适用于启用触摸的设备。

RotateEnd(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上旋转事件的结束。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件仅适用于启用触摸的设备。

RotateStart(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上旋转事件的开始。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

注意

此事件仅适用于启用触摸的设备。

SelectionGeometry(model: Plot | None, geometry: GeometryData | None = None, final: bool = True)[source]#

声明在图表上选择事件的坐标。

geometry#

一个包含选择事件坐标的字典。

类型:

dict

final#

在每次鼠标移动时进行选择的情况下,选择事件是否为最后一个选择事件。

类型:

bool

Tap(model: Plot | None, sx: float | None = None, sy: float | None = None, x: float | None = None, y: float | None = None, modifiers: KeyModifiers | None = None)[source]#

声明在 Bokeh 图表上的点击或单击事件。

sx#

事件在屏幕空间中的 x 坐标

类型:

浮点数

sy#

事件在屏幕空间中的 y 坐标

类型:

浮点数

x#

事件在数据空间中的 x 坐标

类型:

浮点数

y#

事件在数据空间中的 y 坐标

类型:

浮点数

ValueSubmit(model: TextInput | None, value: str)[source]#

声明在文本输入小部件上提交的值。