A Python package for creating shareable, interactive visualizations in the browser
Project description
figpack
A Python package for creating shareable, interactive visualizations in the browser.
Overview
figpack enables you to create interactive data visualizations that can be displayed in a web browser and optionally shared online. The package focuses on timeseries data visualization with support for complex, nested layouts.
Key Features
- Interactive timeseries graphs with line series, markers, and interval plots
- Flexible layout system with boxes, splitters, and tab layouts
- Web-based rendering that works in any modern browser
- Shareable visualizations that can be uploaded and shared via URLs
- Zarr-based data storage for efficient handling of large datasets
Installation
Install figpack using pip:
pip install figpack
Quick Start
import numpy as np
import figpack.views as vv
# Create a timeseries graph
graph = vv.TimeseriesGraph(y_label="Signal")
# Add some data
t = np.linspace(0, 10, 1000)
y = np.sin(2 * np.pi * t)
graph.add_line_series(name="sine wave", t=t, y=y, color="blue")
# Display the visualization
graph.show(open_in_browser=True, title="Quick Start Example")
Available Views
figpack provides a comprehensive set of view components for creating interactive visualizations:
Core Views
- TimeseriesGraph - Interactive line plots, markers, and intervals (example)
- MultiChannelTimeseries - Multi-channel timeseries visualization (example)
- Image - Display images with optional annotations (example)
- Markdown - Render markdown content (example)
Layout Views
- Box - Flexible container with horizontal/vertical layouts (example)
- Splitter - Resizable split panes (example)
- TabLayout - Tabbed interface for multiple views (example)
External Figure Support
- MatplotlibFigure - Embed matplotlib plots (example)
- PlotlyFigure - Embed plotly visualizations (example)
Spike Sorting Views
- Autocorrelograms - Auto-correlation analysis (example)
- CrossCorrelograms - Cross-correlation analysis (example)
- UnitsTable - Sortable table for spike sorting units (example)
Examples
See the examples/ directory for working examples of each view type.
Usage Modes
Local-only Mode
view.show(open_in_browser=True, title="Local Visualization")
Sharing Online
Set the FIGPACK_API_KEY environment variable and use:
view.show(upload=True, open_in_browser=True, title="Shared Visualization")
Development Mode
Set _dev=True in the call to show() to enable development mode, which allows for live updates and development of figpack-gui.
Command Line Interface
figpack includes a command-line interface for working with figures:
Download a Figure
figpack download <figure-url> <dest.tar.gz>
Download a figure from any figpack URL and save it as a local archive.
View a Figure Archive
figpack view <figure.tar.gz>
Extract and view a figure archive in your browser. The server will run locally until you press Enter.
Use --port <number> to specify a custom port.
License
Apache-2.0
Contributing
Visit the GitHub repository for issues, contributions, and the latest updates.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file figpack-0.1.6.tar.gz.
File metadata
- Download URL: figpack-0.1.6.tar.gz
- Upload date:
- Size: 539.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a7c62d33f8d55dc62b9fe1c0771a261fe122ff3239b20608ee92cb7086589f4
|
|
| MD5 |
c291f7b97b1ea0c51b123847119c0d01
|
|
| BLAKE2b-256 |
8be91e795d825de6f4c6b7b54b4458c3ac4d63c62ba714b415e99ff6cf8b59eb
|
Provenance
The following attestation bundles were made for figpack-0.1.6.tar.gz:
Publisher:
deploy-to-pypi.yml on magland/figpack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
figpack-0.1.6.tar.gz -
Subject digest:
6a7c62d33f8d55dc62b9fe1c0771a261fe122ff3239b20608ee92cb7086589f4 - Sigstore transparency entry: 416932008
- Sigstore integration time:
-
Permalink:
magland/figpack@ecf7242f3f3576fb8013bdcbbcc8a222af3fe8f4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/magland
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy-to-pypi.yml@ecf7242f3f3576fb8013bdcbbcc8a222af3fe8f4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file figpack-0.1.6-py3-none-any.whl.
File metadata
- Download URL: figpack-0.1.6-py3-none-any.whl
- Upload date:
- Size: 529.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
027f465f2d7e8e9dda6686e8f06e978a570bab2e54643878261cb11143fca52b
|
|
| MD5 |
c0bb7fe82e09f2afa9ae035b9037f1bd
|
|
| BLAKE2b-256 |
525556edcf2073f5718205e36156c9c930e23dd644ad598c62f47f365fc8172c
|
Provenance
The following attestation bundles were made for figpack-0.1.6-py3-none-any.whl:
Publisher:
deploy-to-pypi.yml on magland/figpack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
figpack-0.1.6-py3-none-any.whl -
Subject digest:
027f465f2d7e8e9dda6686e8f06e978a570bab2e54643878261cb11143fca52b - Sigstore transparency entry: 416932026
- Sigstore integration time:
-
Permalink:
magland/figpack@ecf7242f3f3576fb8013bdcbbcc8a222af3fe8f4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/magland
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy-to-pypi.yml@ecf7242f3f3576fb8013bdcbbcc8a222af3fe8f4 -
Trigger Event:
push
-
Statement type: