Graph (Unix)

In Unix, graph is a command-line utility used to draw plots from tabular data.

History
The graph utility, written by Douglas McIlroy, was present in the first version of Unix, and every later version, for instance:

Its output is a sequence of commands for the plot utility, which creates plots using ASCII graphics.
 * Unix Version 7, released in 1979
 * SunOS 5.10, the Solaris version released in 2005

This design demonstrates the Unix philosophy: defining the plot (graph) and drawing it (plot) are separate tools, so they can be recombined with other tools. For instance, plot can be substituted with a different utility, that accepts the same plot commands, but creates the plot in a graphics file format, or sends it to a plotter.

Unix v7 also provided device drivers for plotting the results to various graphics devices; this was announced as now standard.

The GNU plotutils package provides a free non-exact reimplementation, available for Linux and many other systems. It can create plots in various graphics formats.

Usage
In its simplest use, the graph utility takes a textfile containing pairs of numbers, indicating the points of a line plot.

It outputs the line plot. Several options can be supplied to modify its behavior.

Example (Unix)
These screenshots demonstrate basic operation on SunOS 5.10, on which graph and plot come preinstalled. The example input is from the first example in the GNU plotutils manual.

Example (GNU plotutils)
These screenshots demonstrate the GNU plotutils version of graph when run in an xterm, exploiting xterm's ability to emulate a Tektronix 4010 plotter.

This demo was run on Ubuntu, which makes GNU plotutils available as an optional package; many other Linux distributions and other Unix-like systems do the same.