Perspective is an interactive visualization component for large, real-time datasets. Originally developed for J.P. Morgan's trading business, Perspective makes it simple to build real-time & user configurable analytics entirely in the browser, or in concert with Python and/or Jupyterlab. Use it to create reports, dashboards, notebooks and applications, with static data or streaming updates via Apache Arrow. As a library, Perspective provides both:
Query-driven dashboards built on Perspective Custom Elements are completely user-configurable, and easy to integrate into any application framework.
Using Perspective's simple relational grammar, elements like
<perspective-workspace> can be symmetrically configured, by API or
through the User Interface, and emit dataset-aware Events for scriptable
interactivity. Web Applications built on Perspective
Custom Elements can be re-hydrated from their serialized state, driven
from external Events, or persisted to any store. Workspaces can mix
virtual, server-side Python data with in-browser client data seamlessly, and
independent data Views can be cross-filtered, duplicated, exported, stacked
perspective-python, built on the same C++ data engine used by the
WebAssembly version, implements
the Perspective API directly in Python, either as a high-performance
Streaming Arrow or Virtualized Server for Production, or as an embedded
JupyterLab Widget for Research.
For Application Developers, virtualized
<perspective-viewer> will only
consume the data necessary to render the current screen, enabling ludicrous size
datasets with instant-load after they've been server initialzed. Or - Clone
the entire dataset to the WebAssembly runtime via efficiently via Arrow, and
give your server a break!
For Researchers and Data Scientists,
PerspectiveWidget is available as an
embedded widget within JupyterLab,
allowing Pandas and Arrow preview, transform,
export and persist Perspective visualizations interactively.