Plot time series from MessagePack or line-delimited JSON
Find a file
Stéphane Caron d7586e7097
Some checks failed
ci/woodpecker/push/test/2 Pipeline failed
ci/woodpecker/push/docs Pipeline failed
ci/woodpecker/push/coverage unknown status
ci/woodpecker/push/test/1 Pipeline failed
ci/woodpecker/push/test/3 Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
Bump uplot-python to 1.1.1 for bugfix
2026-06-08 00:23:46 +01:00
.woodpecker CICD: Update Python version of PyPI workflow to 3.10 2026-05-28 13:43:15 +02:00
docs Transfer copyright notices to a NOTICE file 2026-05-15 12:33:49 +02:00
examples Transfer copyright notices to a NOTICE file 2026-05-15 12:33:49 +02:00
foxplot Support items(), values(), etc. in Node class 2026-06-07 20:05:01 +01:00
tests Add unit tests for the new iteration functions 2026-06-07 20:05:17 +01:00
.gitattributes Add .gitattributes 2026-05-15 11:43:40 +02:00
.gitignore Update .gitignore 2026-05-15 12:45:57 +02:00
CHANGELOG.md Bump uplot-python to 1.1.1 for bugfix 2026-06-08 00:23:46 +01:00
LICENSE Initial commit 2022-12-19 13:51:49 +01:00
NOTICE Transfer copyright notices to a NOTICE file 2026-05-15 12:33:49 +02:00
pixi.lock Update pixi.lock 2026-05-28 13:34:16 +02:00
pyproject.toml Bump uplot-python to 1.1.1 for bugfix 2026-06-08 00:23:46 +01:00
README.md CICD: Copy badge to pages branch 2026-05-15 12:52:49 +02:00

foxplot

CI Documentation Coverage PyPI version

Plot time series read from MessagePack or newline-delimited JSON.

Installation

pip install foxplot

Usage

The foxplot command-line tool starts in interactive mode by default to explore the input gathered in data (tab completion works: try data.<TAB>). Plot times series using the fox.plot function, for example:

$ foxplot upkie_2023-05-03-103245.mpack
Python 3.8.10 (default, Mar 13 2023, 10:26:41)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.0.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: fox.plot(data.observation.imu.angular_velocity)

This call opens a new tab in your browser with the desired plot. In this example, angular_velocity is a 3D vector, thus the plot will include three curves.

Check out the documentation for more advanced examples, such as left and right axes or computing new series from existing ones.

See also

  • mpacklog.cpp: C++ library to log dictionaries to MessagePack files in C++.
  • mpacklog.py: command-line tool and Python library to log dictionaries from/to MessagePack files.
  • rq: command-line tool to manipulate streams of records in various formats.
  • µPlot: time-series plotting library whose performance was a key enabler for Foxplot.
  • uplot-python: Python interface to µPlot used in this project.