bokeh.util#
提供一组通用的实用工具,有助于实现Bokeh功能。
bokeh.util.browser#
用于帮助涉及浏览器操作的实用函数。
- get_browser_controller(browser: str | None = None) BrowserLike[source]#
返回一个浏览器控制器。
- Parameters:
browser (str 或 None) –
浏览器名称,或
None(默认值:None) 如果传递字符串'none',则返回一个虚拟的网页浏览器控制器。否则,使用该值通过 webbrowser 标准库模块 选择一个合适的控制器。如果该值为
None,则使用系统默认值。- Returns:
一个网页浏览器控制器
- Return type:
控制器
bokeh.util.callback_manager#
提供 PropertyCallbackManager 和 EventCallbackManager
混合类,用于向类添加 on_change 和 on_event 回调
接口。
- class PropertyCallbackManager(*args: Any, **kw: Any)[源代码]#
一个mixin类,用于提供注册和触发回调的接口。
- on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None[source]#
在此对象上添加一个回调,当
attr发生变化时触发。- Parameters:
attr (str) – 此对象上的一个属性名称
callback (callable) – 要注册的回调函数
- Returns:
无
bokeh.util.compiler#
提供函数和类以帮助进行各种JS和CSS编译。
- class JavaScript(code: str, file: str | None = None)[source]#
一个用JavaScript实现的Bokeh自定义模型
Example
class MyExt(Model): __implementation__ = JavaScript(""" <JavaScript code> """)
- class TypeScript(code: str, file: str | None = None)[source]#
一个用TypeScript实现的Bokeh自定义模型
Example
class MyExt(Model): __implementation__ = TypeScript(""" <TypeScript code> """)
- calc_cache_key(custom_models: dict[str, CustomModel]) str[source]#
生成一个密钥以缓存自定义扩展实现。
除了模型类之外没有其他元数据,因此这是生成缓存键的唯一基础。
我们从
model.full_name列表中构建模型键。这并不理想,但可能以后能找到更好的解决方案。
- get_cache_hook() Callable[[CustomModel, Implementation], AttrDict | None][源代码]#
返回当前用于查找给定CustomModel和Implementation的已编译代码的缓存钩子。
- set_cache_hook(hook: Callable[[CustomModel, Implementation], AttrDict | None]) None[源代码]#
设置一个编译模型缓存钩子,用于根据CustomModel和Implementation查找编译后的代码
bokeh.util.dependencies#
用于检查依赖项的实用工具
- import_optional(mod_name: str) ModuleType | None[source]#
尝试导入一个可选的依赖项。
如果请求的模块不可用,则静默返回 None。
- Parameters:
mod_name (str) – 尝试导入的可选模块的名称
- Returns:
导入的模块或None,如果导入失败
- import_required(mod_name: str, error_msg: str) ModuleType[source]#
尝试导入所需的依赖项。
如果请求的模块不可用,则引发RuntimeError。
- Parameters:
- Returns:
导入的模块
- Raises:
bokeh.util.deprecation#
bokeh.util.functions#
用于函数内省的实用工具。
bokeh.util.hex#
用于处理六边形平铺的有用函数。
有关此处使用的概念的更多信息,请参阅此信息页面
- axial_to_cartesian(q: Any, r: Any, size: float, orientation: str, aspect_scale: float = 1) tuple[Any, Any][源代码]#
将轴向 (q,r) 坐标映射到瓦片中心的笛卡尔 (x,y) 坐标。
此函数可用于将其他Bokeh图形符号定位到与六边形平铺相关的笛卡尔坐标系中。
此函数改编自:
https://www.redblobgames.com/grids/hexagons/#hex-to-pixel
- Parameters:
q (数组[float]) – 用于分箱的q坐标的NumPy数组
r (数组[float]) – 用于分箱的r坐标的NumPy数组
size (float) –
六边形平铺的大小。
大小定义为从六边形中心到“pointytop”方向的顶角的距离,或从中心到“flattop”方向的边角的距离。
orientation (str) – 六边形瓦片的朝向应该是“pointytop”还是“flattop”。
aspect_scale (float, optional) –
在“交叉”维度上缩放六边形。
对于“pointytop”方向,六边形在水平方向上缩放。对于“flattop”方向,它们在垂直方向上缩放。
当处理
aspect_scale != 1的图表时,设置此值以匹配图表可能很有用。
- Returns:
(数组[int], 数组[int])
- cartesian_to_axial(x: Any, y: Any, size: float, orientation: str, aspect_scale: float = 1) tuple[Any, Any][源代码]#
将笛卡尔坐标 (x,y) 点映射到包围瓦片的轴向坐标 (q,r)。
此函数改编自:
https://www.redblobgames.com/grids/hexagons/#pixel-to-hex
- Parameters:
x (数组[float]) – 要转换的x坐标的NumPy数组
y (数组[float]) – 要转换的y坐标的NumPy数组
size (float) –
六边形平铺的大小。
大小定义为从六边形中心到“pointytop”方向的顶角的距离,或从中心到“flattop”方向的边角的距离。
orientation (str) – 六边形瓦片的朝向应该是“pointytop”还是“flattop”。
aspect_scale (float, optional) –
在“交叉”维度上缩放六边形。
对于“pointytop”方向,六边形在水平方向上缩放。对于“flattop”方向,它们在垂直方向上缩放。
当处理
aspect_scale != 1的图表时,设置此值以匹配图表可能很有用。
- Returns:
(数组[int], 数组[int])
- hexbin(x: Any, y: Any, size: float, orientation: str = 'pointytop', aspect_scale: float = 1) Any[source]#
对数据点进行等权重分箱,将其分配到六边形瓦片中。
对于更复杂的用例,例如加权分箱或根据其他数量按比例缩放单个图块,请考虑使用HoloViews。
- Parameters:
x (数组[float]) – 用于分箱的x坐标的NumPy数组
y (数组[float]) – 用于分箱的y坐标的NumPy数组
size (float) –
六边形平铺的大小。
大小定义为从六边形中心到“pointytop”方向的顶角的距离,或从中心到“flattop”方向的边角的距离。
orientation (str, optional) – 六边形瓦片的方向应为“pointytop”还是“flattop”。(默认值:“pointytop”)
aspect_scale (float, optional) –
匹配绘图的长宽比缩放。
当处理长宽比缩放不为1的绘图时,可以设置此参数以匹配绘图,以便绘制规则的六边形(而不是“拉伸”的六边形)。
这大致相当于在“屏幕空间”中进行分箱,当绘图的长宽比缩放不为1时,使用轴对齐的矩形分箱可能更好。
- Returns:
DataFrame
生成的DataFrame将包含指定轴向坐标中六边形瓦片位置的列q和r,以及提供每个瓦片计数的列counts。
警告
六边形分箱仅在线性尺度上起作用,即不在对数图上起作用。
bokeh.util.info#
bokeh.util.logconfig#
为Bokeh配置日志系统。
默认情况下,日志记录未配置,以便Bokeh用户可以完全控制日志记录策略。然而,在开发Bokeh时,能够任意启用日志记录是很有用的。这可以通过设置环境变量BOKEH_PY_LOG_LEVEL来实现。有效值按严重程度递增的顺序为:
debuginfowarnerrorfatalnone
默认的日志记录级别是 none。
bokeh.util.options#
用于指定、验证和记录配置选项的工具。
- class Options(kw: dict[str, Any])[source]#
利用Bokeh属性类型系统来指定和验证配置选项。
Options的子类使用标准的 Bokeh 属性来指定一组配置选项:class ConnectOpts(Options): host = String(default="127.0.0.1", help="a host value") port = Int(default=5590, help="a port value")
然后可以通过传递一个包含与配置选项对应的键和值的字典来创建一个
ConnectOpts,以及任何额外的键和值。与ConnectOpts上的属性对应的项将从字典中移除。这对于那些除了接受一组Bokeh模型属性外,还接受自己的一组配置关键字参数的函数来说非常有用。
bokeh.util.paths#
- bokehjs_path(dev: bool = False) Path[source]#
获取bokehjs源文件的位置。
默认情况下,使用
bokeh/server/static中的文件。如果dev为True,则优先使用bokehjs/build中的文件。然而,如果不可用,则会发出警告并使用前者的文件作为备用。
bokeh.util.serialization#
用于帮助序列化和反序列化Bokeh对象的函数。
某些NumPy数组数据类型可以被序列化为二进制格式以提高性能和效率。支持的数据类型列表如下:
np.boolnp.uint8np.float32np.int32np.uint16np.float64np.int16np.uint32np.int8
- array_encoding_disabled(array: npt.NDArray[Any]) bool[source]#
确定一个数组是否可以进行二进制编码。
可以编码的NumPy数组数据类型有:
np.boolnp.uint8np.float32np.int32np.uint16np.float64np.int16np.uint32np.int8
- Parameters:
array (np.ndarray) – 要检查的数组
- Returns:
布尔
- convert_date_to_datetime(obj: date) float[source]#
将日期对象转换为日期时间
- Parameters:
obj (date) – 要转换的对象
- Returns:
日期时间
- convert_datetime_array(array: npt.NDArray[Any]) npt.NDArray[np.floating[Any]][源代码]#
将NumPy日期时间数组转换为自纪元以来的毫秒数数组。
- Parameters:
array –
(obj) 一个要转换的日期时间NumPy数组
如果传入的值不是NumPy数组,它将按原样返回。
- Returns:
数组
- convert_datetime_type(obj: Any | pd.Timestamp | pd.Timedelta | dt.datetime | dt.date | dt.time | np.datetime64) float[源代码]#
将任何识别的日期、时间或日期时间值转换为自纪元以来的浮点毫秒数。
- convert_timedelta_type(obj: timedelta | timedelta64) float[source]#
将任何识别的时间增量值转换为浮点绝对毫秒。
- is_datetime_type(obj: Any) TypeGuard[time | datetime | datetime64][source]#
一个对象是否是Bokeh识别的任何日期、时间或日期时间类型。
- is_timedelta_type(obj: Any) TypeGuard[timedelta | timedelta64][source]#
一个对象是否是Bokeh识别的任何timedelta类型。
- make_globally_unique_css_safe_id() ID[source]#
返回一个全局唯一的CSS安全UUID。
某些情况下,例如在HTML文档中动态创建的Divs的标识,总是需要全局唯一的ID。使用此函数生成的ID可以用于像
document.querySelector("#id")这样的API中。- Returns:
字符串
- make_globally_unique_id() ID[源代码]#
返回一个全局唯一的UUID。
某些情况下,例如在HTML文档中识别动态创建的Divs,总是需要全局唯一的ID。
- Returns:
字符串
- make_id() ID[source]#
返回一个Bokeh对象的新唯一ID。
通常,此函数将返回简单的单调递增整数ID(作为字符串),用于在文档中识别Bokeh对象。然而,如果希望每个对象都具有全局唯一性,可以通过设置环境变量
BOKEH_SIMPLE_IDS=no来覆盖此行为。- Returns:
字符串
bokeh.util.token#
用于生成和操作会话ID的工具。
会话ID通常与查看应用程序或图表的每个浏览器标签相关联。每个会话都有其自己的状态,与服务器托管的任何其他会话分开。
- check_session_id_signature(session_id: str, secret_key: bytes | None = None, signed: bool | None = False) bool[source]#
检查会话ID的签名,如果有效则返回True。
服务器使用此函数来检查会话ID是否使用正确的密钥生成。如果签名会话被禁用,此函数始终返回True。
- check_token_signature(token: str, secret_key: bytes | None = None, signed: bool = False) bool[source]#
检查令牌的签名和包含的签名。
服务器使用此函数来检查令牌和包含的会话ID是否使用正确的密钥生成。如果签名会话被禁用,此函数始终返回True。
- generate_jwt_token(session_id: ID, secret_key: bytes | None = None, signed: bool = False, extra_payload: dict[str, Any] | None = None, expiration: int = 300) str[源代码]#
生成一个JWT令牌,给定一个session_id和额外的有效载荷。
- generate_session_id(secret_key: bytes | None = None, signed: bool = False) ID[source]#
生成一个随机的会话ID。
通常,连接到Bokeh应用程序的每个浏览器标签都有其自己的会话ID。在生产环境中部署Bokeh应用程序时,会话ID应该是随机且不可猜测的——否则应用程序的用户可能会相互干扰。
bokeh.util.strings#
用于字符串操作或编码的有用函数。
- append_docstring(docstring: str | None, extra: str) str | None[source]#
安全地附加到文档字符串。
当Python使用
-OO选项执行时,文档字符串被移除并替换为None值。此函数在这种情况下防止附加额外内容。
- format_docstring(docstring: None, *args: Any, **kwargs: Any) None[source]#
- format_docstring(docstring: str, *args: Any, **kwargs: Any) str
安全地格式化文档字符串。
当Python使用
-OO选项执行时,文档字符串被移除并替换为None值。此函数在这种情况下防止应用字符串格式化选项。
bokeh.util.tornado#
与Tornado相关的内部工具
bokeh.util.terminal#
提供用于格式化终端输出的实用工具。
bokeh.util.version#
为Bokeh库提供一个版本。
此模块使用versioneer来管理版本字符串。在开发过程中, versioneer会根据当前的git修订版计算版本字符串。 对于基于标签的打包发布,版本字符串在分发的文件中是硬编码的。
- __version__#
此安装的Bokeh库的完整版本字符串
- Functions:
- base_version:
返回基本版本字符串,不附加任何“dev”、“rc”或本地构建信息。
- is_full_release:
返回当前安装的版本是否为完整版本。
bokeh.util.warnings#
提供Bokeh特定的警告子类。
这些子类的主要用途是默认情况下强制它们无条件地显示给用户。