Skip to main content

Plot time-series data from line-delimited JSON.

Project description

foxplot

Build Documentation

Plot time-series data from newline-delimited JSON.

Foxplot stands for "Frequent Observation diXionary plots". Frequent observations arise from the project's initial use case (robotic control loops). Dictionaries are the observation format used in Vulp. Plots are plots :wink:

Installation

$ pip install foxplot

Usage

Interactive mode

In interactive mode, you can explore the data in data (tab completion works) and plot it using the fox.plot function:

$ foxplot -i 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.servo.left_knee.torque,
   ...:         data.observation.servo.left_wheel.torque,
   ...:     ],
   ...:     right=[
   ...:         data.observation.servo.left_knee.velocity,
   ...:         data.observation.servo.left_wheel.velocity,
   ...:     ],
   ...: )
New tab opened in your web browser! The command line is to produce it directly is:

foxplot upkie_2023-05-03-103245.mpack -l /observation/servo/left_knee/torque /observation/servo/left_wheel/torque -r /observation/servo/left_knee/velocity /observation/servo/left_wheel/velocity

Plotting from files

  • JSON: foxplot my_data.json -l /observation/cpu_temperature
  • MessagePack: foxplot my_data.mpack -l /observation/cpu_temperature

Design notes

  • Foxplot prioritizes ease-of-use (interactive mode) over performance

See also

  • µPlot's performance was a key enabler for this project.
  • rq, a tool to manipulate streams of records in various formats.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foxplot-0.1.0.tar.gz (78.7 kB view details)

Uploaded Source

Built Distribution

foxplot-0.1.0-py3-none-any.whl (56.6 kB view details)

Uploaded Python 3

File details

Details for the file foxplot-0.1.0.tar.gz.

File metadata

  • Download URL: foxplot-0.1.0.tar.gz
  • Upload date:
  • Size: 78.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for foxplot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c2d41d8f6ba91a8f2779b138d1f720436ee308d3065226a87a0e03bb7917c160
MD5 c7e317c870a6c7bf349dcd2fdb229395
BLAKE2b-256 f1ce499e2f032e219b5159a6e031e37643569241cbf2438d343c3cdcf4d28a48

See more details on using hashes here.

File details

Details for the file foxplot-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: foxplot-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 56.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for foxplot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce7a9542f926d5a5eddc7bf47f500b1ac54f09dd8355ec9442664bbf82b2fd13
MD5 2a24490e2a1238788798dc00b64c3dae
BLAKE2b-256 e26a7123e9b54c7c4557073f4f8c5ae91564adb31da3a64278c2853c29263a68

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page