perspective – perspective-dev
数据可视化与分析组件,尤其适用于大型和/或流式数据集。
关键指标一览
主题标签
README 详细介绍
<img src="https://img.shields.io/github/actions/workflow/status/perspective-dev/perspective/build.yaml?event=push&style=for-the-badge" alt="Build Status" class="ra0-md-img" loading="lazy" />
<img src="https://img.shields.io/npm/v/@perspective-dev/client.svg?style=for-the-badge" alt="npm" class="ra0-md-img" loading="lazy" />
<img src="https://img.shields.io/pypi/v/perspective-python.svg?style=for-the-badge" alt="PyPI" class="ra0-md-img" loading="lazy" />
<img src="https://img.shields.io/crates/v/perspective?style=for-the-badge" alt="crates.io" class="ra0-md-img" loading="lazy" />
Perspective is an interactive analytics and data visualization component for
large and streaming datasets. Build user-configurable reports, dashboards,
notebooks, and applications with a high-performance query engine compiled to
WebAssembly, Python, and Rust.
Features
- A framework-agnostic user interface packaged as a
Custom Element,
which connects to a Data Model in-browser (via WebAssembly) or remotely (via
WebSocket, with integration in Python, Node.js and Rust). Includes a data
grid, 10+ chart types line, bar, area, scatter, heatmap, treemap, sunburst,
candlestick, and more.
- A Data Model API for pluggable engines, enabling Perspective's UI to query
external data sources like DuckDB while translating
view configurations into native queries.
- A fast, memory-efficient streaming Data Model built-in, written in C++ and
compiled for WebAssembly,
Python, and Rust.
Supports read/write/streaming for Apache Arrow,
with a columnar expression language based on
ExprTK.
- A JupyterLab widget and Python client library for
interactive data analysis in notebooks.
Documentation
- Project Site
- User Guide
- JavaScript API
- <code class="ra0-md-code">@perspective-dev/client</code> Browser
- <code class="ra0-md-code">@perspective-dev/client</code> Node.js
- <code class="ra0-md-code">@perspective-dev/client</code> Clickhouse Virtual Server
- <code class="ra0-md-code">@perspective-dev/client</code> DuckDB Virtual Server
- <code class="ra0-md-code">@perspective-dev/viewer</code> Web Component
- Python API
- <code class="ra0-md-code">perspective</code>
- <code class="ra0-md-code">perspective.widget</code>
- <code class="ra0-md-code">perspective.handlers.aiohttp</code>
- <code class="ra0-md-code">perspective.handlers.starlette</code>
- <code class="ra0-md-code">perspective.handlers.tornado</code>
- <code class="ra0-md-code">perspective.virtual_servers.clickhouse</code>
- <code class="ra0-md-code">perspective.virtual_servers.duckdb</code>
- Rust API
- <code class="ra0-md-code">perspective</code>
- <code class="ra0-md-code">perspective-client</code>
- <code class="ra0-md-code">perspective-server</code>
- <code class="ra0-md-code">perspective-python</code>
- <code class="ra0-md-code">perspective-js</code>
- <code class="ra0-md-code">perspective-viewer</code>
Examples
| editable | file | duckdb |
![]() | ![]() | ![]() |
| fractal | market | raycasting |
![]() | ![]() | ![]() |
| evictions | nypd | streaming |
![]() | ![]() | ![]() |
| covid | webcam | movies |
![]() | ![]() | ![]() |
| superstore | olympics | dataset |
![]() | ![]() | ![]() |
Media
@timkpaine | @timbess | @sc1f |
![]() | ![]() | ![]() |
@texodus | @texodus | |
![]() | ![]() |
The Perspective project is a member of the
The OpenJS Foundation.
Copyright OpenJS Foundation and Perspective contributors.
All rights reserved. The OpenJS Foundation has registered
trademarks and uses trademarks. For a list of trademarks of the
OpenJS Foundation, please see our
Trademark Policy and
Trademark List. Trademarks and logos not
indicated on the
list of OpenJS Foundation trademarks are
trademarks™ or registered® trademarks of their respective holders. Use of them
does not imply any affiliation with or endorsement by them.
The OpenJS Foundation |
Terms of Use |
Privacy Policy |
Bylaws |
Code of Conduct |
Trademark Policy |
Trademark List |
Cookie Policy



















