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)[源代码]#

宣布一个轴被点击的位置。

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

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

class ButtonClick(model: AbstractButton | None)[源代码]#

在Bokeh按钮小部件上宣布一个按钮点击事件。

class ConnectionLost[源代码]#

当与服务器/客户端的连接丢失时进行通知。

注意

要在独立嵌入模式下为此事件注册一个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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

class Event[源代码]#

所有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)[源代码]#

在Bokeh菜单项上宣布一个按钮点击事件。

class ModelEvent(model: Model | None)[源代码]#

所有Bokeh模型事件的基类。

这个基类通常不适合单独实例化。

__init__(model: Model | None) None[源代码]#

创建一个新的基础事件。

Parameters:

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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

当鼠标离开整个绘图画布时,包括任何边框填充和轴或图例的空间,会生成enter事件。

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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

此事件可能会以非常高的频率触发,可能会增加网络流量或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#

(带符号的)滚动速度

Type:

float

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

默认情况下,Bokeh 图表不会阻止默认的滚动事件,除非激活了 WheelZoomToolWheelPanTool。这可能会在未来的版本中改变。

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)[源代码]#

在Bokeh图表上宣布一个平移事件。

delta_x#

x方向的滚动量

Type:

float

delta_y#

y方向的滚动量

Type:

float

direction#

滚动的方向(1 或 -1)

Type:

float

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

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#

缩放的有符号量

Type:

float

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

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)[源代码]#

宣布在Bokeh图表上开始一个捏合事件。

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

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)[源代码]#

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

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

请注意,数据空间坐标是相对于默认范围的,而不是任何额外范围,屏幕空间的原点位于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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

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图表上宣布一个pressup事件。

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

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坐标

Type:

float

x1#

默认x范围的结束x坐标

Type:

float

y0#

默认 y 范围的起始 x 坐标

Type:

float

y1#

默认x范围的结束y坐标

Type:

float

回调可以添加到范围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)[源代码]#

在Bokeh图表上宣布一个旋转事件。

rotation#

已完成的旋转(以度为单位)

Type:

float

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

class 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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

class 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坐标

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

注意

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

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

宣布在图表上选择事件的坐标。

geometry#

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

Type:

dict

final#

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

Type:

bool

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

在Bokeh图表上宣布一个点击或轻触事件。

sx#

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

Type:

float

sy#

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

Type:

float

x#

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

Type:

float

y#

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

Type:

float

class ValueSubmit(model: TextInput | None, value: str)[源代码]#

宣布在文本输入小部件上提交的值。