直接跳到内容

Perspective 数据可视化

PnPerspective 组件提供了一个强大的可视化工具,用于处理大型实时数据集,基于 Perspective 项目PnPerspective 为您的数据应用程序带来了类似Excel的功能。查看 Perspective 示例库 获取灵感。

PnPerspective 组件是 Tabulator 小部件的一个很好的替代品。

底层实现为panel.pane.Perspective,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/Perspective.html

基本用法

PnPerspective 组件将指定为字典列表或数组以及 pandas DataFrame 的数据列呈现为交互式表格:

试着与 PnPerspective 组件交互:

  • 左上角的三个垂直点会切换配置菜单
  • 每列顶部的三条垂直线会切换列配置菜单
  • 顶部菜单提供选项来更改插件以及分组拆分排序过滤数据
  • 底部菜单提供选项来重置下载复制以及更改主题

默认情况下会显示 index。如果您默认不想显示它,可以提供要显示的 columns 列表:

您也可以通过 settings 参数隐藏配置菜单

通过点击左上角的 3 个垂直点,尝试切换配置菜单PnPerspective 组件交互。

插件配置

您可以手动配置活动插件,如下所示为数据网格

perspective_edit

您还可以通过 columns_config 参数以编程方式配置配置:

请注意:

  • 提供 plugin_config 时,您也可以使用命名颜色,如 'green'。但如果这样做,它们将不会在列配置菜单颜色选择器中设置。

有关可用选项的更多详细信息,请参阅下面的列配置选项部分

时区处理

底层的 Perspective Viewer 假设非时区感知的日期时间是 UTC 时间。默认情况下,它会在您的本地时区中显示它们。

如果您的数据不是时区感知的,您可以将它们设置为时区感知。我的服务器时区是 'cet',我可以按如下方式使它们感知时区:

如上节所示,您可以强制日期时间以特定时区显示:

流式处理和补丁更新

PnPerspective 组件还支持 streampatch 方法,使我们能够高效地更新数据:

或者,我们也可以使用 patch 方法更新数据:

通过流式处理您想要可见的数据并将 rollover 设置为等于新数据的行数,可以实现删除行。通过这种方式,有效地删除旧行。目前不支持以类似于修补的方式按索引删除特定行。

列配置选项

底层 FinOS Perspective viewer 的插件和列配置选项没有很好的文档记录。找到它们的最佳方法是:

以下列出了我们能够找到并且看到有效的一些最有用的选项。

注意:下面的一些选项是驼峰式的,如 timeZone。我们预计这是一个错误,FinOS Perspective 某天会修复。如果一个驼峰式选项停止工作,请尝试将其蛇形式化。例如,改为 time_zone。请在 Github 上报告更改。

API

属性

属性名说明类型默认值
object作为字典数组或DataFrame声明的绘图数据dict, pd.DataFrame None
aggregates聚合规范,例如dict None
columns要显示的列名列表或带有列配置选项的字典list, dict None
columns_config列配置,允许为每列指定格式化器、着色和各种其他属性dict None
editable项目是否可编辑bool True
expressions表达式列表,例如 ['"x"+"y"']list None
filters过滤器列表,例如 [["x", "<", 3], ["y", "contains", "abc"]]list None
group_by要分组的列列表,例如 ["x", "y"]list None
plugin用于显示数据的插件名称。例如 'datagrid' 或 'd3_xy_scatter'str None
plugin_configPerspectiveViewerPlugin 的配置dict None
selectable行是否可选择bool True
settings是否显示设置面板bool True
sort排序规范列表,例如 [["x", "desc"]]list None
split_by要透视的列列表。例如 ["x", "y"]list None
theme查看器的主题,可用选项包括 'pro'、'pro-dark'、'monokai'、'solarized'、'solarized-dark' 和 'vaporwave'str None
titlePerspective Viewer 的标题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
margin外边距int, tuple 5
css_classesCSS类名列表list []

回调

  • on_click: 允许注册回调,这些回调接收包含被点击项的 configcolumn_namesrowPerspectiveClickEvent 对象。

Events

事件名说明类型

Slots

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

方法

属性名说明类型
patch更新特定行和列的数据dict, rollover=None
stream将新数据附加到现有数据上obj, rollover=None

Controls

src/examples/panel_vuepy/panes/Perspective

Perspective 数据可视化已经加载完毕