MinMaxLTTB
MinMax-preselection for Efficient Time Series Line Chart Visualization (using LTTB)
Install / Use
/learn @predict-idlab/MinMaxLTTBREADME
Codebase & further details for the paper:
MinMaxLTTB: Leveraging MinMax-Preselection to Scale LTTB
Jeroen Van Der Donckt, Jonas Van Der Donckt
Preprint: https://arxiv.org/abs/2305.00332 - see cite for bibtex!
Performance of MinMaxLTTB
The performance of MinMaxLTTB is assessed for single-core and multi-core execution of our implementation (see tsdownsample).
We compare MinMaxLTTB with the C implementation that has been used in plotly-resampler <= 0.8.3.2.
insights:
MinMaxLTTBis up to 10x faster than theLTTBC implementation in the single-core setting.MinMaxLTTBis up to 30x faster than theLTTBC implementation in the multi-core setting.
These benchmarks are performed on a machine with the following CPU: Intel Xeon E5-2650 v2 (32) @ 3.400GHz.
Visual Representativeness of MinMaxLTTB
The visual representativeness is assessed in accordance with https://arxiv.org/abs/2304.00900
<div align="center"> <img src="gifs/visual_representativeness_preselection_ratio.gif" alt="teaser" width="95%"/> <br></br> </div>insights:
- MinMaxLTTB does not degrade the visual representativeness of LTTB!
- A low MinMax-preselection ratio $r_{ps} \gt 2$ results in a high visual similarity to LTTB
How is the repository structured?
- The codebase is located in the
agg_utils(python scripts) and notebooks folder. - Additional details can be found in markdown files in the
detailsfolder. - Supplementary gifs are located in the
gifsfolder. - See notebooks README for the more details.
- The
0.*notebooks contain data parsing and figure generation. - The
1.*notebooks perform the core experiments (visual representativeness and performance benchmarks).
- The
- The
animationsfolder contains html animations, which allow to inspect the phenomena in more detail.
Folder structure
├── agg_utils <- shared codebase for the notebooks
├── animations <- html animations
├── details <- additional details in README.md files
├── gifs <- supplementary gifs
├── loc_data <- local data folder
└── notebooks <- experiment notebooks see notebooks README.md
How to install the requirements?
This repository uses poetry as dependency manager.
A specification of the dependencies is provided in the pyproject.toml and poetry.lock files.
You can install the dependencies in your Python environment by executing the following steps;
- Install poetry: https://python-poetry.org/docs/#installation
- Activate you poetry environment by calling
poetry shell - Install the dependencies by calling
poetry install
Utilizing this repository
Make sure that you've extended the path_conf.py file's hostname if statement with your machine's hostname and that you've configured the path to the UCR archive folder.
Cite
Preprint: https://arxiv.org/abs/2305.00332
If you use or build upon this work, please cite us via:
@article{van2023minmaxlttb,
title={MinMaxLTTB: Leveraging MinMax-Preselection to Scale LTTB},
author={Van Der Donckt, Jeroen and Van Der Donckt, Jonas and Rademaker, Michael and Van Hoecke, Sofie},
journal={arXiv preprint arXiv:2305.00332},
year={2023}
}
<p align="center"> 👤 <i>Jeroen & Jonas Van Der Donckt</i> </p>
Related Skills
node-connect
342.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.7kCommit, push, and open a PR
