#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