#header-mark#
HoloViews 可视化
HoloViews 是一个流行且功能强大的数据可视化库,支持多种数据和绘图后端。
hvPlot(快速可视化)和 GeoViews(空间可视化)都是基于 HoloViews 构建的,并产生 HoloViews 对象。
Panel、HoloViews、hvPlot 和 GeoViews 都是 HoloViz 生态系统的成员,它们可以完美地协同工作。
PnHoloViews 组件使用 HoloViews 支持的绘图后端之一渲染 HoloViews 对象。这包括 hvPlot 和 GeoViews 生成的对象。
PnHoloViews 组件支持显示包含小部件的交互式 HoloMap 和 DynamicMap 对象。PnHoloViews 组件甚至允许自定义小部件类型及其相对于图表的位置。
底层实现为panel.pane.HoloViews,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/HoloViews.html
基本用法
PnHoloViews 组件将任何 HoloViews 对象自动转换为可显示的面板,同时保持其所有交互功能:
通过设置组件的 object 可以像所有其他组件对象一样更新图表:
您也可以显示 hvPlot(和 GeoViews)对象,因为它们是 HoloViews 对象:
您还可以显示 HoloMap 和 DynamicMap 对象。
HoloViews(框架)如果 HoloMap 或 DynamicMap 声明了任何键维度,它原生渲染带有小部件的图表。这种方法高效地仅更新图表内的数据,而不是完全替换图表。
后端选择
PnHoloViews 组件默认使用 'bokeh' 绘图后端(如果没有通过 holoviews 加载后端),但您可以根据需要将后端更改为 'bokeh'、'matplotlib' 和 'plotly' 中的任何一个。
Bokeh
Bokeh 是默认的绘图后端,所以通常您不必指定它。但让我们在这里展示它是如何工作的:
Matplotlib
Matplotlib 后端允许生成用于打印和出版的图形。如果你想允许响应式大小调整,你可以设置 format='svg',然后使用标准的响应式 sizing_mode 设置:
Plotly
要使用 'plotly' 绘图后端,您需要运行 hv.extension("plotly") 来配置 'plotly' 后端。
如果您使用的是 hvPlot,您可以使用 hvplot.extension("plotly") 来代替:
动态后端切换
您还可以通过小部件动态更改绘图后端:
链接坐标轴
默认情况下,具有共享键或值维度的图表的坐标轴是链接的。您可以通过将 linked_axes 参数设置为 False 来删除链接:
主题
您可以更改 theme:
布局和小部件参数
PnHoloViews 组件提供了 layout 属性,其中包含 HoloViews 组件和 widget_box。
居中
您可以通过 center 参数将图表居中:
API
属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| object | 要显示的 HoloViews 对象 | object | None |
| backend | 任何支持的 HoloViews 后端('bokeh','matplotlib' 或 'plotly')。如果未指定,默认为活动的 holoviews 渲染器。默认为 'bokeh'。 | str | None |
| linked_axes | 是否在面板布局中链接各图的坐标轴 | boolean | True |
| format | 绘制 Matplotlib 图时使用的输出格式 | str | 'png' |
| renderer | 用于渲染 HoloViews 图的明确的 HoloViews 渲染器实例。覆盖 backend 参数。 | object | None |
| theme | 应用于 HoloViews 图的 Bokeh 主题 | str, object | None |
| layout | 包含图表窗格和(可选)widget_box 布局的布局 | pn.layout.Panel | None |
| widget_box | 包含小部件的布局 | ListPanel | None |
| center | 是否居中显示图表 | boolean | False |
| widgets | 从维度名称到小部件类、实例或覆盖字典的映射,用于修改默认小部件 | dict | None |
| widget_location | 相对于图表放置小部件的位置 | str | None |
| widget_layout | 放置小部件的对象,可以是 Row、Column 或 WidgetBox | ListPanel | None |
| widget_type | 是否为每个维度生成单独的小部件,或使用具有连接维度的全局线性滑块 | str | None |
| sizing_mode | 尺寸调整模式 | str | 'fixed' |
| width | 宽度 | int, str | None |
| height | 高度 | int, str | None |
| min_width | 最小宽度 | int | None |
| min_height | 最小高度 | int | None |
| max_width | 最大宽度 | int | None |
| max_height | 最大高度 | int | None |
Slots
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |
Controls
src/examples/panel_vuepy/panes/HoloViews