feedgnuplot(1) General purpose pipe-oriented plotting tool

SYNOPSIS

likwid-setFreq <coreId> <frequency> [<governor>]

DESCRIPTION

feedGnuplot is a pipe-oriented plotting frontend for GNUplot that can read internediate results and create a sort of live plot of the data. feedGnuplot is used by likwid-perfscope(1) to print performance counter data printed out by the timeline daemon mode of likwid-perfctr(1). The Perl script feedGnuplot is not written by the LIKWID Authors, it was written by Dima Kogan and published under GPL. The original web page is https://github.com/dkogan/feedgnuplot

OPTIONS

-h
prints a help message to standard output, then exits.#
--[no]domain
If enabled, the first element of each line is the domain variable. If not, the point index is used.
--[no]dataid
If enabled, each data point is preceded by the ID of the data set that point corresponds to. This ID is interpreted as a string, NOT as just a number. If not enabled, the order of the point is used.
--[no]3d
Do [not] plot in 3D. This only makes sense with --domain. Each domain here is an (x,y) tuple.
--colormap
Show a colormapped xy plot. Requires extra data for the color. zmin/zmax can be used to set the extents of the colors. Automatically increments extraValuesPerPoint.
--[no]stream
Do [not] display the data a point at a time, as it comes in.
--[no]lines
Do [not] draw lines to connect consecutive points.
--[no]points
Do [not] draw points.
--circles
Plot with circles. This requires a radius be specified for each point. Automatically increments extraValuesPerPoint.
--xlabel xxx
Set x-axis label.
--ylabel xxx
Set y-axis label.
--y2label xxx
Set y2-axis label. Does not apply to 3d plots.
--zlabel xxx
Set z-axis label. Only applies to 3d plots.
--title xxx
Set the title of the plot.
--legend curveID=legend
Set the label for a curve plot. Use this option multiple times for multiple curves. With --dataid , curveID is the ID. Otherwise, it's the index of the curve, starting at 0.
--autolegend
Use the curve IDs for the legend. Titles given with --legend override these.
--xlen xxx
When using --stream , sets the size of the x-window to plot. Omit this or set it to 0 to plot ALL the data. Does not make sense with 3d plots. Implies --monotonic
--xmin xxx
Set the minimal point in range for the x-axis. These are ignored in a streaming plot.
--xmax xxx
Set the maximal point in range for the x-axis. These are ignored in a streaming plot.
--ymin xxx
Set the minimal point in range for the y-axis.
--ymax xxx
Set the maximal point in range for the y-axis.
--y2min xxx
Set the minimal point in range for the y2-axis. Does not apply to 3d plots.
--y2max xxx
Set the maximal point in range for the y2-axis. Does not apply to 3d plots.
--zmin xxx
Set the minimal point in range for the z-axis. Only applies to 3d plots or colormaps.
--zmax xxx
Set the maximal point in range for the z-axis. Only applies to 3d plots or colormaps.
--y2 xxx
Plot the data specified by this curve ID on the y2 axis. Without --dataid , the ID is just an ordered 0-based index. Does not apply to 3d plots.
--curvestyle curveID=style
Additional styles per curve. With --dataid , curveID is the ID. Otherwise, it's the index of the curve, starting at 0. Use this option multiple times for multiple curves.
--curvestyleall xxx
Additional styles for ALL curves.
--extracmds xxx
Additional commands. These could contain extra global styles for instance.
--size xxx
Gnuplot size option.
--square
Plot data with aspect ratio 1. For 3D plots, this controls the aspect ratio for all 3 axes.
--square_xy
For 3D plots, set square aspect ratio for ONLY the x,y axes.
--hardcopy xxx
If not streaming, output to a file specified here. Format inferred from filename.
--maxcurves xxx
The maximum allowed number of curves. This is 100 by default, but can be reset with this option. This exists purely to prevent perl from allocating all of the system's memory when reading bogus data.
--monotonic
If --domain is given, checks to make sure that the x-coordinate in the input data is monotonically increasing.If a given x-variable is in the past, all data currently cached for this curve is purged. Without --monotonic , all data is kept. Does not make sense with 3d plots. No --monotonic by default.
--extraValuesPerPoint xxx
How many extra values are given for each data point. Normally this is 0, and does not need to be specified, but sometimes we want extra data, like for colors or point sizes or error bars, etc. feedGnuplot options that require this (colormap, circles) automatically set it. This option is ONLY needed if unknown styles are used, with --curvestyleall for instance.
--dump
Instead of printing to gnuplot, print to STDOUT. For debugging.

EXAMPLE

1.
Simple real-time plotting example: plot how much data is received on the wlan0 network interface in bytes/second
while true; do sleep 1; cat /proc/net/dev; done | gawk '/wlan0/ {if(b) {print $2-b; fflush()} b=$2}' | \
feedgnuplot --lines --stream --xlen 10 --ylabel 'Bytes/sec' --xlabel seconds

Reads the stats of the network interface 'wlan0' every second, reformats it with gawk and pipes the formatted output into feedGnuplot qto create a line plot ( --lines ) of the streaming input ( --stream ). Always show the last 10 seconds ( --xlen ) and use the labels 'seconds' for the x-axis and 'Bytes/sec' for the y-axis.

2.
Simple real-time plotting example: plot the 'idle' CPU consumption against time
sar 1 -1 | awk '$1 ~ /..:..:../ && $8 ~/^[0-9.]*$/ {print $1,$8; fflush()}' | \
feedgnuplot --stream --domain --lines --timefmt '%H:%M:%S' --set 'format x %H:%M:%S'

Reads the CPU IDLE consumption and sets the current time as x-axis key.

AUTHOR

Written by Dima Kogan <[email protected]>.