第三方集成#

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

BokehJS#

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

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

hvPlot#

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

面板#

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

HoloViews#

Bokeh 在开发复杂的网络数据可视化方面提供了极大的灵活性。即便如此,一个更高级的 API 可以使日常的可视化任务变得更加简单和简洁。

HoloViews 是一个简洁的声明式界面,帮助您构建 Bokeh 图表。它是一个独立维护的包,专注于与 Jupyter 笔记本的交互,并能够快速生成用于数据分析的图表原型。例如,在 HoloViews 中构建一个包含三个链接的 Bokeh 图表的交互式图表只需一行代码。

一个HoloViews示例,展示了用几行代码创建的三个链接的交互式Bokeh图表。

添加叠加图、滑块小部件、选择器小部件、选择工具和标签页同样简单明了。

Datashader#

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

Datashader 是一个独立的 Python 库,它能够将最大的数据集渲染为固定大小的栅格图像,忠实地反映底层数据。Datashader 提供了工具,用于构建交互式的 Bokeh 绘图图像,当你在 Python 中缩放和平移时,这些图像会动态重新渲染。这种方法使你能在标准的网页浏览器中显示任意大数据集的交互式可视化。

一个Datashader示例,展示了一个Bokeh图表,作为前端用于交互式探索数亿个美国人口普查数据点。

此外,Datashader 与 hvPlot 和 HoloViews 配合良好。 这使您可以在基础版本和渲染版本之间切换 图表,交错使用 Datashader 和 Bokeh 图表,以及更多功能。这里 是一个 示例 展示了 HoloViews 的交互功能。