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 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 图表上宣布双击或双击事件。
- 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 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 图表上宣布鼠标进入事件。
注意
当鼠标离开整个图表画布(包括任何边框填充和轴或图例的空间)时,将生成进入事件。
- 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 图表上宣布鼠标离开事件。
注意
当鼠标离开整个图表画布(包括任何边框填充和轴或图例的空间)时,将生成离开事件。
- 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 图表上宣布鼠标移动事件。
注意
此事件可能会以非常高的速率触发,这可能会增加网络流量或 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 图表上宣布鼠标滚轮事件。
注意
默认情况下,除非
WheelZoomTool
或WheelPanTool
处于活动状态,否则 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 图表上宣布平移事件。
- 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 图表上平移事件的结束。
- 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 图表上平移事件的开始。
- 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 图表上的捏合事件。
注意
此事件仅适用于支持触摸的设备。
- 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 图表上的捏合事件结束。
注意
此事件仅适用于支持触摸的设备。
- 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 图表上的捏合事件开始。
注意
此事件仅适用于支持触摸的设备。
- 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 事件的基类。
请注意,数据空间坐标相对于默认范围,而不是任何额外的范围,并且屏幕空间原点位于 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 图表上宣布一个按下事件。
- 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 图表上宣布一个松开事件。
- class RangesUpdate(model: Plot | None, *, x0: float | None = None, x1: float | None = None, y0: float | None = None, y1: float | None = None)[source]#
宣布在一个事件中合并的范围更新。
可以将回调添加到范围
start
和end
属性,以响应范围更改,但这会导致对单个逻辑操作(例如平移或缩放)调用多个回调。此事件由支持的工具在整个范围更新完成后发出,以便提供一个可以响应的单一事件。
- 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 绘图上宣布旋转事件。
注意
此事件仅适用于支持触摸的设备。
- 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 绘图上宣布旋转事件的结束。
注意
此事件仅适用于支持触摸的设备。
- 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 图表上开始旋转事件。
注意
此事件仅适用于支持触摸的设备。
- class SelectionGeometry(model: Plot | None, geometry: GeometryData | None = None, final: bool = True)[source]#
宣布图表上选择事件的坐标。