Go to the first, previous, next, last section, table of contents.


The plot Program

How to use plot

The GNU plot filter plot displays GNU graphics metafiles or translates them to other formats. It will take input from files specified on the command line or from standard input. The `-T' option is used to specify the desired output format. Supported output formats include "X", "pnm", "gif", "ai", "ps", "fig", "pcl", "hpgl", "tek", and "meta" (the default).

The metafile format is a device-independent format for storage of vector graphics. By default, it is a binary rather than a human-readable format (see section The Graphics Metafile Format). Each of the graph, pic2plot, tek2plot, and plotfont utilities will write a graphics metafile to standard output if no `-T' option is specified on its command line. The libplot graphics library may also be used to produce metafiles. Metafiles may contain arbitrarily many pages of graphics, but each metafile produced by graph contains only a single page.

plot, like the metafile format itself, is useful if you wish to preserve a vector graphics file, and display or edit it with more than one drawing editor. The following example shows how you may do this.

To produce a plot of data arranged as alternating x and y coordinates in an ASCII file, you may use graph as follows:

graph < ascii_data_file > test.meta

The file `test.meta' will be a single-page graphics metafile. Similarly, to create in metafile format a plot consisting of a simple figure, you may do:

echo 0 0 1 1 2 0 | spline | graph > test.meta

To display any such plot on an X Window System display, you would do

plot -T X test.meta

or

plot -T X < test.meta

To print the plot on a Postscript printer, you would do something like

plot -T ps < test.meta | lpr

To edit it with the free idraw drawing editor, you would do

plot -T ps < test.meta > test.ps
idraw test.ps

To produce a "portable anymap" (a file in PBM, PGM, or PPM format, whichever is most appropriate) you would do

plot -T pnm < test.meta > test.pnm

and to produce a pseudo-GIF file, you would do

plot -T gif < test.meta > test.gif

Similarly, to produce a version of the plot that can be edited with Adobe Illustrator, you would do

plot -T ai < test.meta > test.ai

and to produce a version that can be edited with the free xfig drawing editor, you would do

plot -T fig < test.meta > test.fig
xfig test.fig

Other formats may be obtained by using plot -T pcl, plot -T hpgl, and plot -T tek.

plot may behave differently depending on the environment in which it is invoked. In particular, plot -T ai, plot -T ps, plot -T fig, plot -T pcl, and plot -T hpgl are affected by the environment variable PAGESIZE. plot -T X, plot -T pnm, and plot -T gif are affected by the environment variable BITMAPSIZE. The DISPLAY environment variable affects the operation of plot -T X, and the TERM environment variable affects the operation of plot -T tek. There are also several environment variables that affect the operation of plot -T pcl and plot -T hpgl. For a complete discussion of the effects of the environment on plot, see section Environment variables.

plot command-line options

The plot filter plot translates GNU graphics metafiles to other formats. The `-T' option is used to specify the output format or display type. Files in metafile format are produced by GNU graph, pic2plot, tek2plot, plotfont, and other applications that use the GNU libplot graphics library. For technical details on the metafile format, see section The Graphics Metafile Format.

Input file names may be specified anywhere on the command line. That is, the relative order of file names and command-line options does not matter. If no file names are specified, or the file name `-' is specified, the standard input is read. The output file is written to standard output, unless the `-T X' option is specified. In that case the output is displayed in a window or windows on an X Window System display, and there is no output file.

The full set of command-line options is listed below. There are four sorts of option:

  1. Options setting the values of drawing parameters.
  2. Options relevant only to raw plot, i.e., relevant only if no display type or output format is specified with the `-T' option.
  3. Options specifying the type of metafile format the input is in (for backward compatibility only).
  4. Options requesting information (e.g., `--help').

Each option that takes an argument is followed, in parentheses, by the type and default value of the argument.

The following options set the values of drawing parameters.

`-T type'
`--display-type type'
(String, default "meta".) Select a display type or output format of type type, which may be one of the strings "X", "pnm", "gif", "ai", "ps", "fig", "pcl", "hpgl", "tek", and "meta". These refer respectively to the X Window System, portable anymap (PBM/PGM/PPM) format, pseudo-GIF format, the format used by Adobe Illustrator, idraw-editable Postscript, the format used by the xfig drawing editor, the Hewlett--Packard PCL 5 printer language, the Hewlett--Packard Graphics Language (by default, HP-GL/2), Tektronix format, and device-independent GNU graphics metafile format.
`-p n'
`--page-number n'
(Positive integer.) Display only page number n, within the metafile or sequence of metafiles that is being translated. Metafiles may consist of one or more pages, numbered beginning with 1. Also, each page may contain multiple `frames'. plot -T X or plot -T tek, which plot in real time, will separate successive frames by screen erasures. plot -T pnm, plot -T gif, plot -T ai, plot -T ps, plot -T fig, plot -T pcl, and plot -T hpgl, which do not plot in real time, will display only the last frame of any multi-frame page. The default behavior, if `-p' is not used, is to display all pages. For example, plot -T X displays each page in its own X window. If the `-T pnm' option, the `-T gif' option, the `-T ai' option, or the `-T fig' option is used, the default behavior is to display only the first page, since files in PNM, pseudo-GIF, AI, or Fig format may contain only a single page of graphics. Most metafiles produced by the GNU plotting utilities (e.g., by raw graph) contain only a single page, consisting of two frames: an empty one to clear the display, and a second one containing graphics.
`-s'
`--merge-pages'
Merge all displayed pages into a single page, and also merge all `frames' within each displayed page. This option is useful when merging together single-page plots from different sources. For example, it can be used to merge together plots obtained from separate invocations of graph. This is an alternative form of multiplotting (see section Multiplotting: placing multiple plots on a single page).
`--bitmap-size bitmap_size'
(String, default "570x570".) Set the size of the graphics display in which the plot will be drawn, in terms of pixels, to be bitmap_size. This is relevant only to plot -T X, plot -T pnm, and plot -T gif, for which the graphics display size can be expressed in terms of pixels. The environment variable BITMAPSIZE can equally well be used to specify the size. For backward compatibility, the X resource Xplot.geometry, which can be set by the user, may be used to set the window size, instead of `--bitmap-size' or BITMAPSIZE.
`--max-line-length max_line_length'
(Integer, default 500.) Set the maximum number of points that a polygonal line may contain, before it is flushed to the display device, to equal max_line_length. If this flushing occurs, the polygonal line will be split into two or more sub-lines, though the splitting should not be noticeable. Splitting will not take place if the line is the boundary of a filled polygon. The reason for splitting long polygonal lines is that some display devices (e.g., old Postscript printers and HP-GL pen plotters) have limited buffer sizes. The environment variable MAX_LINE_LENGTH can also be used to specify the maximum line length. This option has no effect on plot -T tek or raw plot, since they draw polylines in real time and have no buffer limitations.
`--page-size pagesize'
(String, default "letter".) Set the size of the page on which the plot will be positioned. This is relevant only to plot -T ai, plot -T ps, plot -T fig, plot -T pcl, and plot -T hpgl. "letter" means an 8.5in by 11in page. Any ISO page size in the range "a0"..."a4" or ANSI page size in the range "a"..."e" may be specified ("letter" is an alias for "a" and "tabloid" is an alias for "b"). "legal", "ledger", and "b5" are recognized page sizes also. The environment variable PAGESIZE can equally well be used to specify the page size. For plot -T ai and plot -T ps, the graphics display within which the plot is drawn will be a square region centered on the specified page, occupying its full width (with allowance being made for margins). For plot -T fig, it will be a square region located of the same size, located in the upper left corner of an xfig display. For plot -T pcl and plot -T hpgl, the graphics display will be a square region of the same size, but may be positioned differently. Fine control over its positioning on the page may be accomplished by setting certain environment variables (see section Environment variables).

The following options set the initial values of additional drawing parameters. All of these may be overridden by directives in the metafile itself. In fact, these options are useful mostly for plotting old metafiles in the pre-GNU `plot(5)' format, which did not include such directives.

`--bg-color name'
(String, default "white".) Set the color used for the plot background to be name. This is relevant only to plot -T X, plot -T pnm, and plot -T gif. An unrecognized name sets the color to the default. For information on what names are recognized, see section Specifying Colors by Name. The environment variable BG_COLOR can equally well be used to specify the background color. If the `-T gif' option is used, a transparent pseudo-GIF may be produced by setting the TRANSPARENT_COLOR environment variable to the name of the background color. See section Environment variables.
`-f font_size'
`--font-size font_size'
(Float, initial value device-dependent.) Set the initial size of the font used for rendering text, as a fraction of the width of the graphics display, to font_size.
`-F font_name'
`--font-name font_name'
(String, default "Helvetica" except for plot -T pnm, plot -T gif, plot -T pcl, plot -T hpgl, plot -T tek, and raw plot, for all of which "HersheySerif" is the default.) Set the font initially used for text (i.e., for `labels') to font_name. Font names are case-insensitive. If the specified font is not available, the default font will be used. Which fonts are available depends on which `-T' option is used. For a list of all fonts, see section Available text fonts. The plotfont utility will produce a character map of any available font. See section The plotfont Utility.
`-W line_width'
`--line-width line_width'
(Float, default -1.0.) Set the thickness of lines, as a fraction of the size (i.e., minimum dimension) of the graphics display, to line_width. A negative value means that the default value provided by the libplot graphics library should be used. This is usually 1/850 times the size of the display, although if `-T X', `-T pnm', or -T gif is specified, it is zero. By convention, a zero-thickness line is the thinnest line that can be drawn. This is the case in all output formats. Note, however, that the drawing editors idraw and xfig treat zero-thickness lines as invisible. plot -T tek does not support drawing lines with other than a default thickness, and plot -T hpgl does not support doing so if the environment variable HPGL_VERSION is set to a value less than "2" (the default).
`--pen-color name'
(String, default "black".) Set the pen color to be name. An unrecognized name sets the pen color to the default. For information on what color names are recognized, see section Specifying Colors by Name.

The following option is relevant only to raw plot, i.e., relevant only if no output type is specified with the `-T' option. In this case plot outputs a graphics metafile, which may be translated to other formats by a second invocation of plot.

`-O'
`--portable-output'
Output the portable (human-readable) version of GNU metafile format, rather than a binary version (the default). This can also be requested by setting the environment variable META_PORTABLE to "yes".

plot will automatically determine which type of GNU metafile format the input is in. There are two types: binary (the default) and portable (human-readable). The binary format is machine-dependent. See section The Graphics Metafile Format.

For compatibility with older plotting software, the reading of input files in the pre-GNU `plot(5)' format is also supported. This is normally a binary format, with each integer in the metafile represented as a pair of bytes. The order of the two bytes is machine dependent. You may specify that input file(s) are in plot(5) format rather than ordinary GNU metafile format by using either the `-h' option ("high byte first") or the `-l' option ("low byte first"), whichever is appropriate. Some non-GNU systems support an ASCII (human-readable) variant of plot(5) format. You may specify that the input is in this format by using the `-A' option. Irrespective of the variant, a file in plot(5) format includes only one page of graphics.

`-h'
`--high-byte-first-input'
Input file(s) are assumed to be in traditional `plot(5)' metafile format, with the high-order byte of each integer occurring first.
`-l'
`--low-byte-first-input'
Input file(s) are assumed to be in traditional `plot(5)' metafile format, with the low-order byte of each integer occurring first.
`-A'
`--ascii-input'
Input file(s) are assumed to be in the ASCII variant of traditional `plot(5)' metafile format.

The following options request information.

`--help'
Print a list of command-line options, and then exit.
`--help-fonts'
Print a table of available fonts, and then exit. The table will depend on which display type or output format is specified with the `-T' option. plot -T X, plot -T ai, plot -T ps, and plot -T fig each support the 35 standard Postscript fonts. plot -T ai, plot -T pcl, and plot -T hpgl support the 45 standard PCL 5 fonts, and plot -T pcl and plot -T hpgl support a number of Hewlett--Packard vector fonts. All of the preceding, together with plot -T pnm, plot -T gif, and plot -T tek, support a set of 22 Hershey vector fonts. Raw plot in principle supports any of these fonts, since its output must be translated to other formats with plot. The plotfont utility will produce a character map of any available font. See section The plotfont Utility.
`--list-fonts'
Like `--help-fonts', but lists the fonts in a single column to facilitate piping to other programs. If no display type or output format is specified with the `-T' option, the full set of supported fonts is listed.
`--version'
Print the version number of plot and the plotting utilities package, and exit.

Environment variables

The behavior of plot is affected by several environment variables. We have already mentioned the environment variables BITMAPSIZE, PAGESIZE, BG_COLOR, and MAX_LINE_LENGTH. They serve as backups for the options `--bitmap-size', `--page-size', `--bg-color', and `--max-line-length'. The remaining environment variables are specific to individual output formats.

plot -T X, which pops up a window on an X Window System display and draws graphics in it, checks the DISPLAY environment variable. The value of this variable determines the display on which the window will be popped up.

plot -T pnm, which produces output in Portable Anymap (PBM/PGM/PPM) format, is affected by the PNM_PORTABLE environment variable. If its value is "yes", the output file will be in the portable (human readable) version of PBM, PGM, or PPM format, rather than the default (binary) version.

plot -T gif, which produces output in pseudo-GIF format, is affected by two environment variables. If the value of the INTERLACE variable is "yes", the pseudo-GIF output file will be in interlaced format. Also, if the value of the TRANSPARENT_COLOR environment variable is the name of a color that appears in the output file, that color will be treated as transparent by most applications that read GIF files. For information on what color names are recognized, see section Specifying Colors by Name.

plot -T pcl, which produces PCL 5 output for Hewlett--Packard printers and plotters, is affected by several environment variables. The position of the graphics display on the page can be adjusted by setting the PCL_XOFFSET and PCL_YOFFSET environment variables, which may be specified in centimeters, millimeters, or inches. For example, an offset could be specified as "2cm" or "1.2in". Also, the display can be rotated 90 degrees counterclockwise on the page by setting the PCL_ROTATE environment variable to "yes". Besides "no" and "yes", recognized values for this variable are "0", "90", "180", and "270". "no" and "yes" are equivalent to "0" and "90", respectively.

The variable PCL_ASSIGN_COLORS is also recognized. It should be set to "yes" when producing PCL 5 output for a color printer or other color device. This will ensure accurate color reproduction by giving the output device complete freedom in assigning colors, internally, to its "logical pens". If it is "no" then the device will use a fixed set of colored pens, and will emulate other colors by shading. The default is "no" because monochrome PCL 5 devices, which are much more common than colored ones, must use shading to emulate color.

plot -T hpgl, which produces Hewlett--Packard Graphics Language output, is also affected by several environment variables. The most important is HPGL_VERSION, which may be set to "1", "1.5", or "2" (the default). "1" means that the output should be generic HP-GL, "1.5" means that the output should be suitable for the HP7550A graphics plotter and the HP758x, HP7595A and HP7596A drafting plotters (HP-GL with some HP-GL/2 extensions), and "2" means that the output should be modern HP-GL/2. If the version is "1" or "1.5" then the only available fonts will be vector fonts, and all lines will be drawn with a default thickness (the `-W' option will not work). Additionally, if the version is "1" then the filling of arbitrary curves with solid color will not be supported (circles and rectangles aligned with the coordinate axes may be filled, though).

The position of the plot -T hpgl graphics display on the page can be adjusted by setting the HPGL_XOFFSET and HPGL_YOFFSET environment variables, which may be specified in centimeters, millimeters, or inches. For example, an offset could be specified as "2cm" or "1.2in". Also, the display can be rotated 90 degrees counterclockwise on the page by setting the HPGL_ROTATE environment variable to "yes". Besides "no" and "yes", recognized values for this variable are "0", "90", "180", and "270". "no" and "yes" are equivalent to "0" and "90", respectively. "180" and "270" are supported only if HPGL_VERSION is "2" (the default).

Opaque filling and the drawing of visible white lines are supported only if HPGL_VERSION is "2" (the default) and the environment variable HPGL_OPAQUE_MODE is "yes" (the default). If the value is "no" then opaque filling will not be used, and white lines (if any), which are normally drawn with pen #0, will not be drawn. This feature is to accommodate older HP-GL/2 devices. HP-GL/2 pen plotters, for example, do not support opacity or the use of pen #0 to draw visible white lines. Some older HP-GL/2 devices reportedly malfunction if asked to draw opaque objects.

By default, plot -T hpgl will draw with a fixed set of pens. Which pens are present may be specified by setting the HPGL_PENS environment variable. If HPGL_VERSION is "1", the default value of HPGL_PENS is "1=black"; if HPGL_VERSION is "1.5" or "2", the default value of HPGL_PENS is "1=black:2=red:3=green:4=yellow:5=blue:6=magenta:7=cyan". The format should be self-explanatory. By setting HPGL_PENS, you may specify a color for any pen in the range #1...#31. For information on what color names are recognized, see section Specifying Colors by Name. Pen #1 must always be present, though it need not be black. Any other pen in the range #1...#31 may be omitted.

If HPGL_VERSION is "2" then plot -T hpgl will also be affected by the environment variable HPGL_ASSIGN_COLORS. If the value of this variable is "yes", then plot -T hpgl will not be restricted to the palette specified in HPGL_PENS: it will assign colors to "logical pens" in the range #1...#31, as needed. The default value is "no" because other than color LaserJet printers and DesignJet plotters, not many HP-GL/2 devices allow the assignment of colors to logical pens.

plot -T tek, which produces output for a Tektronix terminal or emulator, checks the TERM environment variable. If the value of TERM is "xterm", "xterms", or "kterm", it is taken as a sign that the current application is running in an X Window System VT100 terminal emulator: an xterm. Before drawing graphics, plot -T tek will emit an escape sequence that causes the terminal emulator's auxiliary Tektronix window, which is normally hidden, to pop up. After the graphics are drawn, an escape sequence that returns control to the original VT100 window will be emitted. The Tektronix window will remain on the screen.

If the value of TERM is "kermit", "ansi.sys", "ansissys", "ansi.sysk", or "ansisysk", it is taken as a sign that the current application is running in the VT100 terminal emulator provided by the MS-DOS version of kermit. Before drawing graphics, plot -T tek will emit an escape sequence that switches the terminal emulator to Tektronix mode. Also, some of the Tektronix control codes emitted by plot -T tek will be kermit-specific. There will be a limited amount of color support, which is not normally the case (the 16 ansi.sys colors will be supported). After drawing graphics, plot -T tek will emit an escape sequence that returns the emulator to VT100 mode. The key sequence `ALT minus' can be employed manually within kermit to switch between the two modes.


Go to the first, previous, next, last section, table of contents.