Translations of this page are also available in the following languages: Русский.

# Simulation Data Plotting

## Rationale

This article discusses on how data plotting can be improved. There are various programs out there, each has it's own pros and cons:

- gtkwave: a great viewer for digital simulation data
- gwave: analog waveform viewer
- KJWaves: simulation frontend with plotting window
- buildin plotting functions in ngspice
- gnuplot / octave / scipy / ... or similar programs as postprocessing script languages
- ...

There have been various suggestions on the mailing lists about the feature a plotting program could have:

- postprocessing: integrate, add, diff, fft, ...
- view, examine: cursors, multiple windows, ...
- data import, file format: circuit simulation data (gnucap, spice, ...) hdf5 , measured data from oscilloscopes, spectrum analysers, ...
- data export, file format: hdf5, pictures (png, ps, ...), ascii
- communication backends: dbus, ...
- extension/scripting language

## Draft1: Extend gtkwaves

- write some import functions for analog data

## Draft2: improve gwave

gwave requires an old guile-gtk for GTK1.2.

- port gwave to guile-gtk2.0 for GTK2.x
- remove the guile-gtk requirement. Maybe create a native gtk2 application with libglade?

A rewrite of gwave:

- gaw: http://www.rvq.fr/linux/gaw.php

## Draft3: Search for existing data exploring programs

Are there any programs out there that can show and postprocess simulation data? If yes, how can they be extended to work as a waveform viewer for the simulators (gnucap, ngspice)?

## Draft4: A new plotting application

Some vague notes on how a new plotting application could be written. This notes currently relate on python as programming language.

- the GUI could be created with libglade
- the data storage format could be hdf5 , maybe together with pytables
- the plotting engine could be matplotlib (png, ps export included)
- postprocessing could be done with scipy
- the scripting language is python. Thus import filter to hdf5 can easily be written. Even an integrated python shell would be possible. Seen on MayaVi 2

Disadvantage: This configuration has a huge rucksack of additional required packages.

Update

There are now some programs out there, that use the python, numpy, matplotlib tool chain:

- oscopy: http://repo.or.cz/w/oscopy.git
- dataplot: http://www.h-renrew.de/h/dataplot/dataplot.html, http://repo.or.cz/w/dataplot.git
- gsim: http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim