Skip to content

MinMax-preselection for Efficient Time Series Line Chart Visualization (using LTTB)

Notifications You must be signed in to change notification settings

predict-idlab/MinMaxLTTB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐎 MinMaxLTTB: Leveraging MinMax-Preselection to Scale LTTB

teaser

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.

teaser

insights:

  • MinMaxLTTB is up to 10x faster than the LTTB C implementation in the single-core setting.
  • MinMaxLTTB is up to 30x faster than the LTTB C 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

teaser

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 details folder.
  • Supplementary gifs are located in the gifs folder.
  • 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 animations folder 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;

  1. Install poetry: https://python-poetry.org/docs/#installation
  2. Activate you poetry environment by calling poetry shell
  3. 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}
}

👤 Jeroen & Jonas Van Der Donckt