第三方集成#

Bokeh 与各种其他库很好地集成,允许您为每个任务使用最合适的工具。

BokehJS#

为了在浏览器中显示可视化,Bokeh 将 Python 数据和事件转换为 JSON,并将其传达给其配套的 JavaScript 库 BokehJS。您也可以将 BokehJS 用作独立库或与 JavaScript 框架结合使用,例如 ReactVueAngular 等。

有关 BokehJS 的更多信息,请参阅 使用 JavaScript 开发

hvPlot#

hvPlot 是一个简洁的 API,允许您使用 pandas 的 .plot() 函数和各种数据容器在 Bokeh 中绘制图形。这个 API 特别适合交互式处理数据,并让您可以快速生成常见的图形类型。

Panel#

Panel 库提供了一个高级反应式接口,使其易于在 Bokeh 之上构建数据密集型仪表板和 Web 应用程序。Panel 实现了 Jupyter 笔记本Bokeh 服务器 之间的完全互操作性。这使您可以在笔记本中开发或原型设计应用程序,并在服务器上部署它们。Panel 还与其他绘图库进行交互,并允许您将多个数据科学工件整合到单个 Bokeh 应用程序中。此外,该库还包括许多 JavaScript 模板,让您自定义 Bokeh 应用程序的外观。

HoloViews#

Bokeh 在为 Web 开发复杂的数据可视化方面提供了很大的灵活性。即使这样,一个更高层次的 API 也可以使日常可视化任务更容易、更简洁。

HoloViews 是一个简洁的声明式接口,可以帮助您构建 Bokeh 图表。它是一个单独维护的软件包,专注于与 Jupyter 笔记本的交互,并使您可以快速对数据分析的图形进行原型设计。例如,使用 HoloViews 仅需一行代码即可构建具有三个链接的 Bokeh 图表的交互式图形。

A HoloViews example showing three linked interactive Bokeh plots created with a handful of lines of code.

添加叠加的图表、滑块小部件、选择器小部件、选择工具和选项卡也同样简单直观。

Datashader#

默认情况下,Bokeh 会将 Python 中的数据点复制到浏览器中运行的 JavaScript 进程,以提供响应式、本地交互式图表。但是,浏览器只能处理有限的数据量,这使得直接在 JavaScript 中绘制数百万或数十亿个点变得不可行。此外,典型的图表渲染技术会对如此庞大的数据集产生误导性的图表,因为存在 过度绘制 等相关问题。

Datashader 是一个独立的 Python 库,它将即使是最庞大的数据集渲染成固定大小的栅格图像,从而忠实地反映基础数据。Datashader 为您提供了构建交互式 Bokeh 图表图像的工具,这些图像在您缩放和平移时会在 Python 中动态重新渲染。这种方法允许您在标准 Web 浏览器中显示任意大小数据集的交互式可视化。

A Datashader example showing a Bokeh plot used as a front-end for interactively exploring hundreds of millions of US census data points.

此外,Datashader 与 hvPlot 和 HoloViews 协同工作良好。这使您可以在图表的基线版本和渲染版本之间切换,交错 Datashader 和 Bokeh 图表,等等。这是一个 示例,展示了 HoloViews 的交互方式。