Visualizing large time series with plotly
Project description
plotly_resampler: visualize large sequential data by adding resampling functionality to Plotly figures
Plotly is an awesome interactive visualization library, however it can get pretty slow when a lot of data points are visualized (100 000+ datapoints). This library solves this by downsampling the data respective to the view and then plotting the downsampled points. When you interact with the plot (panning, zooming, ...), dash callbacks are used to resample and redraw the figures.
In this Plotly-Resampler demo over 110,000,000 data points are visualized!
Installation
| pip | pip install plotly-resampler |
|---|
Usage
To add dynamic resampling to your plotly Figure, you should;
- wrap the constructor of your plotly Figure with
FigureResampler - call
.show_dash()on the Figure
(OPTIONAL) add the trace data as hf_x and hf_y (for faster initial loading)
Minimal example
import plotly.graph_objects as go; import numpy as np
from plotly_resampler import FigureResampler
x = np.arange(1_000_000)
noisy_sin = (3 + np.sin(x / 200) + np.random.randn(len(x)) / 10) * x / 1_000
fig = FigureResampler(go.Figure())
fig.add_trace(go.Scattergl(name='noisy sine', showlegend=True), hf_x=x, hf_y=noisy_sin)
fig.show_dash(mode='inline')
Features
- Convenient to use:
- just add the
FigureResamplerdecorator around a plotly Figure constructor and call.show_dash() - allows all other ploty figure construction flexibility to be used!
- just add the
- Environment-independent
- can be used in Jupyter, vscode-notebooks, Pycharm-notebooks, as application (on a server)
- Interface for various downsampling algorithms:
- ability to define your preferred sequence aggregation method
Important considerations & tips
- When running the code on a server, you should forward the port of the
FigureResampler.show_dash()method to your local machine. - In general, when using downsampling one should be aware of (possible) aliasing effects.
The [R] in the legend indicates when the corresponding trace is being resampled (and thus possibly distorted) or not.
Future work 🔨
- Support
.add_traces()(currently only.add_traceis supported)
👤 Jonas Van Der Donckt, Jeroen Van Der Donckt, Emiel Deprost
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 plotly-resampler-0.3.0.tar.gz.
File metadata
- Download URL: plotly-resampler-0.3.0.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.8.10 Linux/5.4.0-100-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cb266bb69a75fa7a1f56851b363e04704dc30a4e22dacb640ed5b3398b943f3
|
|
| MD5 |
30bc2b9779e8d422c18e5143cc6bc2a5
|
|
| BLAKE2b-256 |
e0f2f328b84906e7a0af0af3206a776d0682889d9bda9b523a5372e109b03372
|
File details
Details for the file plotly_resampler-0.3.0-py3-none-any.whl.
File metadata
- Download URL: plotly_resampler-0.3.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.8.10 Linux/5.4.0-100-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca1d465326b4dad9b98c7e51d0f5c1a1e418f81c1ab982ea2876ad8121d18ee6
|
|
| MD5 |
bfa55f2e84bf06530ab7be28583e8f86
|
|
| BLAKE2b-256 |
d97f46c3b7035e0447c2ad89e61cab9a774fb21968a631bc435e3a1a3ba19c03
|