graph (Unix)

{{Short description|Unix graphing utility}}

{{lowercase}}

{{Infobox software

| name = graph

| logo =

| screenshot =

| screenshot size =

| caption =

| author = Douglas McIlroy
(AT&T Bell Laboratories)

| developer = Various open-source and commercial developers

| released =

| latest release version =

| latest release date =

| operating system = Unix, Unix-like

| platform = Cross-platform

| genre = Command

| license =

| website =

}}

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:

{{cite web

|title=graph

|series=Unix v7 manual pages

|url=https://www.unix.com/man-page/v7/1G/GRAPH/

|access-date=Nov 24, 2018

|year=1979

|publisher=Bell Labs

}}

  • SunOS 5.10, the Solaris version released in 2005

{{cite web

|title=graph

|series=SunOS 5.10 manual pages

|url=https://www.unix.com/man-page/sunos/1/graph/

|access-date=Nov 24, 2018

|year=2005

|publisher=Sun Microsystems

}}

Its output is a sequence of commands for the plot utility, which creates plots using ASCII graphics.

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;

{{cite book

|title=Computer programs in Seismology: CALPLOT graphics

|editor1-first=Robert B.

|editor1-last=Herrmann

|page=vi

|year=2004

|version=3.30

|url=http://www.eas.slu.edu/eqc/eqc_cps/CPS/CPS330/cps330p.pdf

|access-date=Nov 24, 2018

}}

this was announced as now standard.{{cite news

|title=7th Edition UNIX — Summary

|publisher=Bell Laboratories

|location=Murray Hill, New Jersey 07974

|page=1

|date=September 6, 1978

|url=http://a.papnet.eu/UNIX/v7/files/doc/01_summary.pdf

|access-date=Nov 24, 2018

|archive-date=November 24, 2018

|archive-url=https://web.archive.org/web/20181124220133/http://a.papnet.eu/UNIX/v7/files/doc/01_summary.pdf

|url-status=dead

}}

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)

Graph (SunOS 5.10) demo, part 1 of 2 - input and execution.png | Preparing example input and running graph with plot

Graph (SunOS 5.10) demo, part 2 of 2 - output.png | The results

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)

Graph (Ubuntu 14.04 Linux) demo, part 1 of 2 - input and execution.png | Preparing example input and running graph in Tektronix mode

Graph (Ubuntu 14.04 Linux) demo, part 2 of 2 - output.png | The results

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.

References

{{Reflist}}