feedGnuplot(1)

NAME
feedGnuplot - 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 formated 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 <dima@secretsauce.net>.

BUGS
Report Bugs on <https://github.com/dkogan/feedgnuplot/issues>.

SEE ALSO
gnuplot(1), awk(1), sar(1), likwid-perfscope(1), likwid-perfctr(1)