> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/finos/perspective) · [上游 README](https://github.com/finos/perspective/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
[](https://github.com/perspective-dev/perspective/actions/workflows/build.yaml)
[](https://www.npmjs.com/package/@perspective-dev/client)
[](https://pypi.python.org/pypi/perspective-python)
[](https://crates.io/crates/perspective)
Perspective 是一款面向大规模和流式数据集的交互式分析与数据可视化组件。借助编译为 WebAssembly、Python 和 Rust 的高性能查询引擎,可构建用户可配置的报告、仪表盘、笔记本(notebooks)和应用。
## 功能特性
- 以框架无关的用户界面形式打包为
[Custom Element](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements),
,可在浏览器内(通过 WebAssembly)或远程(通过 WebSocket,并与 Python、Node.js 和 Rust 集成)连接 Data Model。包含数据表格,以及 10 多种图表类型:折线图(line)、柱状图(bar)、面积图(area)、散点图(scatter)、热力图(heatmap)、树状图(treemap)、旭日图(sunburst)、K 线图(candlestick)等。
- 提供可插拔引擎的 Data Model API,使 Perspective 的 UI 能够查询
[DuckDB](https://duckdb.org/) 等外部数据源,同时将视图配置转换为原生查询。
- 内置快速、内存高效的流式 Data Model,使用 C++ 编写并编译为
[WebAssembly](https://webassembly.org/),
[Python](https://www.python.org/), 和 [Rust](https://www.rust-lang.org/).
。支持 [Apache Arrow](https://arrow.apache.org/),
的读/写/流式处理,并基于
[ExprTK](https://github.com/ArashPartow/exprtk). 提供列式表达式语言。
- 提供 [JupyterLab](https://jupyter.org/) 组件和 Python 客户端库,用于在笔记本中进行交互式数据分析。
## 文档
- [项目站点](https://perspective-dev.github.io/)
- [用户指南](https://perspective-dev.github.io/guide/)
- JavaScript API
- [`@perspective-dev/client` Browser](https://perspective-dev.github.io/browser/modules/src_ts_perspective.browser.ts.html)
- [`@perspective-dev/client` Node.js](https://perspective-dev.github.io/node/modules/src_ts_perspective.node.ts.html)
- [`@perspective-dev/client` Clickhouse Virtual Server](https://perspective-dev.github.io/browser/modules/dist_esm_virtual_servers_clickhouse.js.html)
- [`@perspective-dev/client` DuckDB Virtual Server](https://perspective-dev.github.io/browser/modules/dist_esm_virtual_servers_duckdb.js.html)
- [`@perspective-dev/viewer` Web Component](https://perspective-dev.github.io/viewer/modules/perspective-viewer.html)
- Python API
- [`perspective`](https://perspective-dev.github.io/python/index.html)
- [`perspective.widget`](https://perspective-dev.github.io/python/perspective/widget.html)
- [`perspective.handlers.aiohttp`](https://perspective-dev.github.io/python/perspective/handlers/aiohttp.html)
- [`perspective.handlers.starlette`](https://perspective-dev.github.io/python/perspective/handlers/starlett.html)
- [`perspective.handlers.tornado`](https://perspective-dev.github.io/python/perspective/handlers/tornado.html)
- [`perspective.virtual_servers.clickhouse`](https://perspective-dev.github.io/python/perspective/virtual_servers/clickhouse.html)
- [`perspective.virtual_servers.duckdb`](https://perspective-dev.github.io/python/perspective/virtual_servers/duckdb.html)
- Rust API
- [`perspective`](https://docs.rs/perspective/latest/perspective/)
- [`perspective-client`](https://docs.rs/perspective-client/latest/perspective_client/)
- [`perspective-server`](https://docs.rs/perspective-server/latest/perspective_server/)
- [`perspective-python`](https://docs.rs/perspective-python/latest/perspective_python/)
- [`perspective-js`](https://docs.rs/perspective-js/latest/perspective_js/)
- [`perspective-viewer`](https://docs.rs/perspective-viewer/latest/perspective_viewer/)
## 示例
| editable | file | duckdb |
![]() | ![]() | ![]() |
| fractal | market | raycasting |
![]() | ![]() | ![]() |
| evictions | nypd | streaming |
![]() | ![]() | ![]() |
| covid | webcam | movies |
![]() | ![]() | ![]() |
| superstore | olympics | dataset |
![]() | ![]() | ![]() |
@timkpaine |
@timbess |
@sc1f |
![]() |
![]() |
![]() |
@texodus |
@texodus |
|
![]() |
![]() |