直接跳到内容

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 组件支持 vegavega-lite 规范,可以以原始形式(即字典)提供,或者通过定义一个 altair 图表。

Vega 和 Vega-lite

要显示 vegavega-lite 规范,只需直接构造一个 PnVega 组件:

与所有其他组件一样,PnVega 组件的 object 可以更新:

响应式大小调整

vega-lite 规范还可以通过将宽度或高度声明为匹配容器来进行响应式大小调整:

请注意,vega 规范不支持将 widthheight 设置为 container

DataFrame 数据值

为了方便起见,我们支持将 Pandas DataFrame 作为 datavalues

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
selectionSelection 对象公开反映图表上声明的选择到 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_classesCSS类名列表list []

Slots

插槽名说明
default自定义默认内容

Controls

src/examples/panel_vuepy/panes/Vega

Vega 图表已经加载完毕