Plot data in real-time from arbitrary input streams (serial ports, network, files etc.)
Pull request Compare This branch is 22 commits ahead, 11 commits behind fnoble:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Plot-o-matic is a simple application for graphing and monitoring live streams of data from different sources. The aim is to make it easier to quickly visualise data when prototyping some new device or software.

It includes a plugin architecture to make it very easy to add new input sources and decoders for your own packet formats and, being written in python, it is easily modified or scripted for specific applications.

Eventually the aim is to include a number of general purpose plugins to read from serial ports, files, network sockets etc. and decoders for common data formats e.g. CSV, C structs etc.


Plot-o-matic requires the following python modules to be installed:

  • numpy
  • wx
  • setupdocs (required by Traits)
  • Traits
  • TraitsGUI
  • TraitsBackendWX (untested with the Qt backend)
  • Chaco
  • Mayavi
  • Python VTK

You will probably also need the following packages:

  • swig (required by Chaco/Enable)

Some step-by-step instructions for specific platforms are below but in general you can obtain these modules through easy_install.


Install the common libraries through apt:

sudo apt-get install python-dev python-setuptools python-setupdocs python-wxgtk2.8 python-numpy swig python-vtk

Get Traits etc. through easy_install because the versions in Ubuntu's repos are quite old:

sudo easy_install Traits TraitsGUI TraitsBackendWX Chaco Mayavi


From the command-line: