All Projects → predict-idlab → plotly-resampler

predict-idlab / plotly-resampler

Licence: other
Visualize large time-series data in plotly

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to plotly-resampler

Interactive-Dashboards-and-Data-Apps-with-Plotly-and-Dash
Interactive Dashboards and Data Apps with Plotly and Dash, published by Packt
Stars: ✭ 181 (-9.5%)
Mutual labels:  plotly, plotly-dash
dash-mantine-components
Plotly Dash components based on Mantine React Components
Stars: ✭ 263 (+31.5%)
Mutual labels:  plotly, plotly-dash
covid-19
Coronavirus COVID-19 Dashboard - Global Kaggle Data
Stars: ✭ 31 (-84.5%)
Mutual labels:  plotly, plotly-dash
Slapdash
Boilerplate for bootstrapping scalable multi-page Dash applications
Stars: ✭ 225 (+12.5%)
Mutual labels:  plotly, plotly-dash
dash-admin
CLI tool for initiating dash boilerplate
Stars: ✭ 22 (-89%)
Mutual labels:  plotly, plotly-dash
Dash
Analytical Web Apps for Python, R, Julia, and Jupyter. No JavaScript Required.
Stars: ✭ 15,592 (+7696%)
Mutual labels:  plotly, plotly-dash
gaitutils
Extract and visualize gait data
Stars: ✭ 28 (-86%)
Mutual labels:  plotly, plotly-dash
Fitly
Self hosted web analytics for endurance athletes
Stars: ✭ 65 (-67.5%)
Mutual labels:  plotly, plotly-dash
Machine-Learning-Projects-2
No description or website provided.
Stars: ✭ 23 (-88.5%)
Mutual labels:  time-series, plotly
dash-redis-celery-periodic-updates
Demo apps now maintained in https://github.com/plotly/dash-enterprise-docs
Stars: ✭ 47 (-76.5%)
Mutual labels:  plotly, plotly-dash
Plotly.js
Open-source JavaScript charting library behind Plotly and Dash
Stars: ✭ 14,268 (+7034%)
Mutual labels:  plotly, plotly-dash
Fred
A fast, scalable and light-weight C++ Fréchet distance library, exposed to python and focused on (k,l)-clustering of polygonal curves.
Stars: ✭ 13 (-93.5%)
Mutual labels:  time-series, sequential-data
Dash Sample Apps
Open-source demos hosted on Dash Gallery
Stars: ✭ 2,090 (+945%)
Mutual labels:  plotly, plotly-dash
Dash.jl
Dash for Julia - A Julia interface to the Dash ecosystem for creating analytic web applications in Julia. No JavaScript required.
Stars: ✭ 248 (+24%)
Mutual labels:  plotly, plotly-dash
Plotly.py
The interactive graphing library for Python (includes Plotly Express) ✨
Stars: ✭ 10,701 (+5250.5%)
Mutual labels:  plotly, plotly-dash
2019-nCoV-dash
新型冠状病毒(2019-nCoV)肺炎(COVID-19)疫情展示
Stars: ✭ 13 (-93.5%)
Mutual labels:  plotly, plotly-dash
Plotly express
Plotly Express - Simple syntax for complex charts. Now integrated into plotly.py!
Stars: ✭ 633 (+216.5%)
Mutual labels:  plotly, plotly-dash
Front End
Coronavirus COVID19 US Cases Dashboard
Stars: ✭ 42 (-79%)
Mutual labels:  plotly, plotly-dash
dash-lollapalooza-brasil-2018
🎟Using Plotly to visualize data from Lollapalooza
Stars: ✭ 23 (-88.5%)
Mutual labels:  plotly, plotly-dash
rasterly
Rapidly generate raster images from large datasets in R with Plotly.js
Stars: ✭ 42 (-79%)
Mutual labels:  plotly, plotly-dash

Plotly-Resampler logo

PyPI Latest Release support-version codecov Code quality PRs Welcome Documentation Testing

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.

example demo

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;

  1. wrap the constructor of your plotly Figure with FigureResampler
  2. 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 FigureResampler decorator around a plotly Figure constructor and call .show_dash()
    • allows all other ploty figure construction flexibility to be used!
  • 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_trace is supported)


👤 Jonas Van Der Donckt, Jeroen Van Der Donckt, Emiel Deprost

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].