#header-mark#
Vega 图表
PnVega
组件可以渲染基于 Vega 的图表(包括来自 Altair 的图表)。它通过对 Vega/Altair 对象中的数组数据使用二进制序列化来优化图表渲染,与 Vega 原生使用的标准 JSON 序列化相比,提供了显著的加速。请注意,要在 Jupyter 笔记本中使用 PnVega
组件,必须使用 'vega' 作为参数加载 Panel 扩展,以确保正确初始化 vega.js。
底层实现为panel.pane.Vega
,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/Vega.html
基本用法
PnVega
组件支持 vega
和 vega-lite
规范,可以以原始形式(即字典)提供,或者通过定义一个 altair
图表。
Vega 和 Vega-lite
要显示 vega
和 vega-lite
规范,只需直接构造一个 PnVega
组件:
与所有其他组件一样,PnVega
组件的 object
可以更新:
响应式大小调整
vega-lite
规范还可以通过将宽度或高度声明为匹配容器来进行响应式大小调整:
请注意,vega
规范不支持将 width
和 height
设置为 container
。
DataFrame 数据值
为了方便起见,我们支持将 Pandas DataFrame 作为 data
的 values
:
Altair
定义 Vega 图表的一种更便捷的方式是使用 altair,它在 vega-lite 之上提供了声明式 API。PnVega
组件在传入 Altair 图表时会自动渲染 Vega-Lite 规范:
Altair 图表也可以通过更新组件的 object
来更新:
Altair 支持的所有常规布局和组合操作符也可以渲染:
选择
PnVega
组件自动同步在 Vega/Altair 图表上表达的任何选择。目前支持三种类型的选择:
selection_interval
:允许使用框选工具选择区间,以{<x轴名称>: [x最小值, x最大值], <y轴名称>: [y最小值, y最大值]}
的形式返回数据selection_single
:允许使用点击选择单个点,返回整数索引列表selection_multi
:允许使用(shift+)点击选择多个点,返回整数索引列表
区间选择
作为一个例子,我们可以在图表中添加一个 Altair selection_interval
选择:
请注意,我们指定了一个单一的 debounce
值,如果我们声明多个选择,可以通过将其指定为字典来为每个命名事件声明一个去抖动值,例如 debounce={'brush': 10, ...}
。
主题
可以使用 theme
参数为图表应用主题:
API
属性
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
object | 包含 Vega 或 Vega-Lite 图表规范的字典,或者是 Altair 图表 | dict, object | None |
debounce | 应用于选择事件的去抖延迟时间,可以指定为单个整数值(以毫秒为单位)或声明每个事件的去抖值的字典 | int, dict | None |
theme | 应用于图表的主题。必须是 'excel'、'ggplot2'、'quartz'、'vox'、'fivethirtyeight'、'dark'、'latimes'、'urbaninstitute' 或 'googlecharts' 之一 | str | None |
show_actions | 是否显示图表操作菜单,如保存、编辑等 | boolean | True |
selection | Selection 对象公开反映图表上声明的选择到 Python 中的参数 | object | 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 |
margin | 外边距 | int, tuple | 5 |
css_classes | CSS类名列表 | list | [] |
Slots
插槽名 | 说明 |
---|---|
default | 自定义默认内容 |
Controls
src/examples/panel_vuepy/panes/Vega