GNUPLOT is a command-driven interactive function plotting program.
introduction
GNUPLOT is a command-driven interactive function plotting program.
It is case sensitive (commands and function names written in lowercase
are not the same as those written in CAPS). All command names may be
abbreviated, as long as the abbreviation is not ambiguous. Any number
of commands may appear on a line, separated by semicolons (;).
Strings are indicated with quotes. They may be either single or double
quotation marks, e.g.,
load "filename"
cd 'dir'
Any command-line arguments are assumed to be names of files containing
GNUPLOT commands, with the exception of standard X11 arguments, which
are processed first. Each file is loaded with the load
command, in the order specified. GNUPLOT exits after the last file is
processed. When no load files are named, gnuplot enters into an interactive
mode.
Commands may extend over several input lines, by ending each
line but the last with a backslash (\). The backslash must be the LAST
character on each line. The effect is as if the backslash and newline
were not there. That is, no white space is implied, nor is a comment
terminated. Therefore, commenting out a continued line comments out
the entire command (see comment).
In this documentation, curly braces ({}) denote optional arguments to
many commands, and a vertical bar (|) separates mutually exclusive
choices. GNUPLOT keywords or help topics are indicated by backquotes
or boldface (where available). Angle brackets (<>) are used
to mark replaceable tokens.
For help on any topic, type help followed by the name of the topic.
The new GNUPLOT user should begin by reading about the
plot command (type help plot).
command line-editing
The Unix, Atari, VMS, MS-DOS and OS/2 versions of GNUPLOT support command
line-editing. Also, a history mechanism allows previous commands to be
edited, and re-executed. After the command line has been edited, a newline
or carriage return will enter the entire line regardless of where the
cursor is positioned.
The editing commands are as follows:
Line-editing:
^B moves back a single character.
^F moves forward a single character.
^A moves to the beginning of the line.
^E moves to the end of the line.
^H and DEL delete the previous character.
^D deletes the current character.
^K deletes from current position to the end of line.
^L,^R redraws line in case it gets trashed.
^U deletes the entire line.
^W deletes the last word.
History:
^P moves back through history.
^N moves forward through history.
On the IBM PC the use of a TSR program such as DOSEDIT or CED may be
desired for line editing. For such a case GNUPLOT may be compiled with
no line editing capability (default makefile setup). Set READLINE in the
makefile and add readline.obj to the link file if GNUPLOT line editing
is to be used for the IBM PC. The following arrow keys may be used
on the IBM PC and Atari versions if readline is used:
Left Arrow - same as ^B.
Right Arrow - same as ^F.
Ctl Left Arrow - same as ^A.
Ctl Right Arrow - same as ^E.
Up Arrow - same as ^P.
Down Arrow - same as ^N.
The Atari version of readline defines some additional key aliases:
Undo - same as ^L.
Home - same as ^A.
Ctrl Home - same as ^E.
ESC - same as ^U.
Help - help' plus return.
Ctrl Help - help '.
(The readline function in gnuplot is not the same as the readline used
in GNU BASH and GNU EMACS. It is somewhat compatible however.)
environment
A number of shell environment variables are understood by GNUPLOT.
None of these are required, but may be useful.
If GNUTERM is defined, it is used as the name of the terminal type to
be used. This overrides any terminal type sensed by GNUPLOT on start
up, but is itself overridden by the .gnuplot (or equivalent) start-up
file (see start-up), and of course by later explicit changes.
On Unix, AmigaDOS, AtariTOS, MS-DOS and OS/2, GNUHELP may be defined
to be the pathname of the HELP file (gnuplot.gih).
On VMS, the symbol GNUPLOT$HELP should be defined as the name of
the help library for GNUPLOT.
On Unix, HOME is used as the name of a directory to search for
a .gnuplot file if none is found in the current directory.
On AmigaDOS, AtariTOS, MS-DOS and OS/2, GNUPLOT is used. On VMS, SYS$LOGIN:
is used. See help start-up.
On Unix, PAGER is used as an output filter for help messages.
On Unix, AtariTOS and AmigaDOS, SHELL is used for the shell command.
On MS-DOS and OS/2, COMSPEC is used for the shell command.
On AmigaDOS, GNUFONT is used for the screen font. For example:
"setenv GNUFONT sapphire/14".
On MS-DOS, if the BGI interface is used, the variable BGI is used to point
to the full path of the BGI drivers directory. Furthermore SVGA is used to
name the Super VGA BGI driver in 800x600 res., and its mode of operation
as 'Name.Mode'.
E.g., if the Super VGA driver is C:\TC\BGI\SVGADRV.BGI and mode 3 is
used for 800x600 res., then: 'set BGI=C:\TC\BGI' and 'set SVGA=SVGADRV.3'.
fit
This implementation incorporates the capabiblity of nonlinear least
squares fit by using the Marquardt-Levenberg-Algorithm. It may fit
every user-defined function to any set of data pairs (x,y).
x, y and the function's return type MUST be real! Any variable occuring
in the function body may serve as fit parameter (fitting functions without
adjustable parameters make no sense). The syntax is:
fit <function> <datafile> {using x:y{:dy}} <parameter file> or
fit <function> <datafile> {using x:y{:dy}} via <var1>, <var2>, ...
<function> is a previously user-defined function of the form: f(x)
<datafile> is treated as in the plot-command. The default column for
x is 1, for y is 2. They may be changed by the using x:y mechanism. The
optional dy specifies a column containing individual uncertainties for
each y-value. These will then be used as weights during the fit. If they
aren't given all uncertainties are assumed equally distributed. The start
parameters may be specified in a (load-) file wherein each line is of the
form:
varname = value
(comments, separated by '#' and blank lines are also possible). The form
varname = value # FIXED
means that the variable is treated as a fixed parameter that is initialized
but will not be adjusted. It is not necessary (but sometimes useful for
clarity) to specify them at all. The keyword '# FIXED' has to appear in
exactly this form. The other possibility of specifying start values
is that the current value of a variable during the GNUPLOT session shall
serve as start parameter. In this case the syntax including the via keyword
may be used where only the adjustable variables' names must be given.
After each iteration step a detailed info is given about the fit's state
both on the screen and on a logfile "fit.log". This file will never be erased
but always appended so that the fit's history isn't lost. After each iteration
step the fit may be interrupted by pressing ctrl-C (any key BUT ctrl-C under
MSDOS). Then you have the possibility of stopping (and accepting the current
parameter values) or continuing the fit or of executing a gnuplot command
specified by an environment variable FIT_SCRIPT. E.g. a plot command or
LOADing some file may be useful.
Special GNUPLOT variables:
FIT_INDEX: This variable always contains the current data point number
during execution starting with 1. You may use it in your fit
function to implement multiple-branch-fits.
FIT_SKIP: You may specify a positive integer to always skip i data points
during fitting. This increases execution speed by the
price of less exact results.
FIT_LIMIT: may be specified to change the default epsilon limit (1e-5).
When the sum of squared residuals changes between 2 iteration
steps by less than a factor of this number, the fit is
considered as 'converged'.
Environment variables:
FIT_LOG changes the logfile's path from './fit.log' (write permission
is necessary).
FIT_SCRIPT specifies a command to be executed after an user interrupt
Examples:
f(x) = a*x**2 + b*x + c
fit f(x) 'measured.dat' 'start.par'
fit f(x) 'measured.dat' using 3:7 'start.par'
fit f(x) './data/trash.dat' using 1:2:3 via a, b, c
SEE ALSO: update
data-file
Discrete data contained in a file can be displayed by specifying the
name of the data file (enclosed in quotes) on the plot or splot
command line. Data files should contain one data point per line.
Lines beginning with # (or ! on VMS) will be treated as comments
and ignored. For plots, each data point represents an (x,y)
pair. For splots, each point is an (x,y,z) triple. For plots with
error bars (see plot errorbars), each data point is either
(x,y,ydelta), (x,y,ylow,yhigh), (x,y,xdelta), (x,y,xlow,xhigh), or
(x,y,xlow,xhigh,ylow,yhigh). In all cases, the numbers on each
line of a data file must be separated by blank space. This blank
space divides each line into columns.
For plots the x value may be omitted, and for splots the x
and y values may be omitted. In either case the omitted values are
assigned the current coordinate number. Coordinate numbers start at 0
and are incremented for each data point read.
To specify other formats, see plot datafile using.
In the plot command, blank lines in the data file cause a break in
the plot. There will be no line drawn between the preceding and
following points if the plot style is lines or linespoints (see
plot style). This does not change the plot style, as would plotting
the data as separate curves.
This example compares the data in the file population.dat to a
theoretical curve:
pop(x) = 103*exp((1965-x)/10)
plot [1960:1990] 'population.dat', pop(x)
The file population.dat might contain:
# Gnu population in Antarctica since 1965
1965 103
1970 55
1975 34
1980 24
1985 10
When a data file is plotted, samples and isosamples are ignored.
Curves plotted using the plot command are automatically extended to
hold the entire curve. Similarly grid data plotted using the splot
command is automatically extended, using the assumption that isolines
are separated by blank lines (a line with only a CR/LF in it).
Implicitly, there are two types of 3-d datafiles. If all the isolines
are of the same length, the data is assumed to be a grid data, i.e.,
the data has a grid topology. Cross isolines in the other parametric
direction (the ith cross isoline passes through the ith point of all the
provided isolines) will also be drawn for grid data. (Note contouring
is available for grid data only.) If all the isolines are not of the
same length, no cross isolines will be drawn and contouring that data
is impossible.
For splot, data files may contain more than one mesh and by default
all meshes are plotted. Meshes are separated from each other, in the
file, by double blank lines. To control and splot a single mesh from
a multi mesh file, use the index modifier. See splot index for more.
For splot if 3-d datafile and using format (see splot datafile using)
specify only z (height field), a non parametric mode must be specified.
If, on the other hand, x, y, and z are all specified, a parametric
mode should be selected (see set parametric) since data is defining a
parametric surface.
A simple example of plotting a 3-d data file is
set parametric
splot 'glass.dat'
or
set noparametric
splot 'datafile.dat'
where the file datafile.dat might contain:
# The valley of the Gnu.
10
10
10
10
5
10
10
1
10
10
0
10
Note datafile.dat defines a 4 by 3 grid ( 4 rows of 3 points each ).
Rows are separated by blank lines.
On some computer systems with a popen function (UNIX), the datafile
can be piped through a shell command by starting the file name
with a '<'. For example:
pop(x) = 103*exp(-x/10)
plot "< awk '{print $1-1965, $2}' population.dat", pop(x)
would plot the same information as the first population example
but with years since 1965 as the x axis. If you want to execute
this example, you have to delete all comments from the data file
above or substitute the following command for the first part of the
command above (the part up to the comma):
plot "< awk '$0 !~ /^#/ {print $1-1965, $2}' population.dat"
It is also possible to apply a single function to the "y" value only,
e.g.
plot 'population.dat' thru p(x)
For more information about 3-d plotting, see splot.
using
The format of data within a file can be selected with the using
option. An explicit scanf string can be used, or simpler column
choices can be made.
Syntax:
plot "datafile" { using { <ycol> |
<xcol>:<ycol> |
<xcol>:<ycol>:<ydelta> |
<xcol>:<ycol>:<xdelta> |
<xcol>:<ycol>:<boxwidth> |
<xcol>:<ycol>:<ylow>:<yhigh> |
<xcol>:<ycol>:<xlow>:<xhigh> |
<xcol>:<ycol>:<xdelta>:<ydelta> |
<xcol>:<ycol>:<ydelta>:<boxwidth> |
<xcol>:<ycol>:<ylow>:<yhigh>:<boxwidth> |
<xcol>:<ycol>:<xlow>:<xhigh>:<ylow>:<yhigh>}
{"<scanf string>"} } ...
and
splot "datafile" { using { <xcol>:<ycol>:<zcol> | <zcol> }
{"<scanf string>"} } ...
<xcol>, <ycol>, and <zcol> explicitly select the columns to plot from
a space or tab separated multicolumn data file. If only <ycol> is
selected for plot, <xcol> defaults to 1. If only <zcol> is selected
for splot, then only that column is read from the file. An <xcol> of
0 forces <ycol> to be plotted versus its coordinate number. <xcol>,
<ycol>, and <zcol> can be entered as constants or expressions.
If x, y and/or z is time data (dates-times), the columns occupied by
the time (any character, spaces included, is allowed in format string)
counts for one column. The "scanf-string" will not work with timeseries.
See also set timefmt.
If yerrorbars (see also plot errorbars) are used for plots,
ydelta (for example, a +/- error) should be provided as the third
column, or ylow and yhigh as third and fourth columns.
If xerrorbars (see also plot errorbars) are used for plots,
xdelta (for example, a +/- error) should be provided as the third
column, or xlow and xhigh as third and fourth columns.
If xyerrorbars or boxxyerrorbars (see also plot errorbars) are used for
plots, xlow and xhigh may be provided as third and fourth columns and
ylow and yhigh may be provided as fifth and sixth columns. It is also
possible to have xdelta and ydelta in the third and fourth columns,
respectively.
If boxes are used for plots, the third column is used to
specify the width of the box. If boxerrorbars are used, the fourth column (if
"ydelta" is third col), or the fifth column (if "ylow" and "yhigh" are
third and fourth cols) may be used for the box width. See boxerrorbars or
set style for more details.
Note that boxerrorbars is only used for data
with errors in y. Each box starts at the x axis (boxxyerrorbars has different
behavior).
Scanf strings override any <xcol>:<ycol>(:<zcol>) choices, except for
ordering of input, e.g.,
plot "datafile" using 2:1 "%lf%*lf%lf"
causes the first column to be y and the third column to be x.
If the scanf string is omitted, the default is generated based on the
<xcol>:<ycol>(:<zcol>) choices. If the using option is omitted, "%lf%lf"
is used for plot ("%lf%lf%lf%lf" for errorbars plots) and "%lf%lf%lf" is
used for splot.
Examples:
plot "MyData" using "%*lf%lf%*20[^\n]%lf" with lines
Data are read from the file "MyData" using the format
"%*lf%lf%*20[^\n]%lf". The meaning of this format is: "%*lf" ignore the
first number, "%lf" then read in the second and assign to x,
"%*20[^\n]" then ignore 20 non-newline characters, "%lf" then read in
the y value.
n=3;
plot "MyData", "MyData" using n
causes GNUPLOT to plot the second and third columns of MyData versus
the first column. The command 'n=4; replot' would then plot the second
and fourth columns of MyData versus the first column.
splot "glass.dat" using 1
causes GNUPLOT to plot the first coordinate of the points of glass.dat
as the z coordinate while ignoring the other two coordinates.
Note: GNUPLOT first reads a line of the data file into a buffer and
then does a
sscanf(input_buffer, scanf_string, &x, &y{, &z});
where 'x', 'y', and 'z' are of type 'float'. Any scanf string that
specifies two (three for splot, three to six for errorbars) float
numbers may be used. Using Demos.
errorbars
Error bars are supported for 2-d data file plots by reading one to
four additional columns specifying ydelta or ylow and yhigh for
yerrorbars or xdelta or xlow and xhigh for xerrorbars or xdelta, ydelta
or xlow, xhigh, ylow, yhigh for xyerrorbars or boxxyerrorbars.
No support exists for any error bars for splots.
In the default situation, GNUPLOT expects to see three or six
numbers on each line of the data file, either (x, y, ydelta),
(x, y, ylow, yhigh), (x, y, xdelta), (x, y, xlow, xhigh),
(x, y, xdelta, ydelta), or (x, y, xlow, xhigh, ylow, yhigh). The
x coordinate must be specified. The order of the numbers must be
exactly as given above. Data files in this format can easily be
plotted with error bars:
plot "data.dat" with errorbars (or yerrorbars)
plot "data.dat" with xerrorbars
plot "data.dat" with xyerrorbars
plot "data.dat" with yerrorbars
The y-error bar is a vertical line plotted from (x, ylow) to (x,
yhigh). If ydelta is specified instead of ylow and yhigh,
ylow=y-ydelta and yhigh=y+ydelta are derived. If there
are only two numbers on the line, yhigh and ylow are both set to
y. The x-error bar is a horizontal line computed in the same fashion.
To get lines plotted between the data points, plot the data file
twice, once with errorbars and once with lines.
If autoscaling is on, the x and/or y range will be adjusted to fit the
error bars.
The using option may be used to specify how columns of the data file
are to be assigned to x, y, ydelta, ylow and yhigh, xdelta, xlow and xhigh.
The x column must
be provided and both the x and y columns must appear before the
errorbar columns. If three column numbers are given, they are x, y,
and ydelta or xdelta. If four columns are given, they are x, y, ylow,
and yhigh or x, y, xlow, and xhigh or x, y, xdelta, ydelta.
Examples:
plot "data.dat" using 1:2:3:4 with errorbars (or yerrorbars)
plot "data.dat" using 3:2:6 with xerrorbars
plot "data.dat" using 3:4:8:7 with xyerrorbars
The first example reads, x, y, ylow, and yhigh, from columns 1, 2, 3,
and 4. This is equivalent to the default. The second example reads x
from the third column, y from second and xdelta from the sixth column.
The third example reads x from the third column, y from the fourth,
xdelta from the eighth, and ydelta from seventh columns.
See also plot using and plot style.
parametric
When in parametric mode (set parametric) mathematical expressions must
be given in pairs for plot and in triplets for splot:
plot sin(t),t**2
or
splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
Data files are plotted as before, except any preceding parametric
function must be fully specified before a data file is given as a
plot. In other words, the x parametric function (sin(t) above) and
the y parametric function (t**2 above) must not be interrupted with
any modifiers or data functions; doing so will generate a syntax error
stating that the parametric function is not fully specified.
Ranges take on a different meaning when in parametric mode. The first
range on the plot command is the trange, the next is the xrange,
and the last is the yrange. For splot the order is urange,
vrange, xrange, yrange, and finally zrange. The following
plot command shows setting the trange to [-pi:pi], the xrange to
[-1.3:1.3] and the yrange to [-1:1] for the duration of the plot:
plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
Other modifiers, such as with and title, may be specified only
after the parametric function has been completed:
plot sin(t),t**2 title 'Parametric example' with linespoints
ranges
The optional range specifies the region of the plot that will be
displayed.
Ranges may be provided on the plot and splot command line and
affect only that plot, or in the set xrange, set yrange, etc.,
commands, to change the default ranges for future plots.
Syntax:
[{<dummy-var> =} {<xmin> : <xmax>}] { [{<ymin> : <ymax>}] }
where <dummy-var> is the independent variable (the defaults are x and
y, but this may be changed with set dummy) and the min and max
terms can be constant expressions. If only one value is provided
(as in: set yrange [0:]) the range in the opposite direction is
unaffected (or still autoscaled). To set a range back to autoscale
give a star as the value (set yrange [*:] turns autoscaling in
the ymin direction on).
Both the min and max terms are optional. The ':' is also optional
if neither a min nor a max term is specified. This allows '[ ]' to
be used as a null range specification.
Specifying a range in the plot command line turns autoscaling for
that axis off for that plot. Using one of the set range commands
turns autoscaling off for that axis for future plots, unless changed
later. (See set autoscale).
With time data, provide the ranges in the samme manner as in the datafile
within quotes (uses the timefmt string to read the value).
Examples:
This uses the current ranges:
plot cos(x)
This sets the x range only:
plot [-10:30] sin(pi*x)/(pi*x)
This is the same, but uses t as the dummy-variable:
plot [t = -10 :30] sin(pi*t)/(pi*t)
This sets both the x and y ranges:
plot [-pi:pi] [-3:3] tan(x), 1/x
This sets only the y range, and turns off autoscaling on both axes:
plot [ ] [-2:sin(5)*-8] sin(x)**besj0(x)
This sets xmax and ymin only:
plot [:200] [-pi:] exp(sin(x))
This sets the x, y, and z ranges:
splot [0:3] [1:4] [-1:1] x*y
Timeseries (timefmt="%d/%m/%y %H:%M"):
set xrange ["1/6/93 12:00":"5/6/93 12:00"]
style
Plots may be displayed in one of thirteen styles: lines, points,
linespoints, impulses, dots, {x,y,xy}errorbars, steps, fsteps,
boxes, boxerrorbars, or boxxyerrorbars. The lines style
connects adjacent points with lines.
The points style displays a small symbol at each point.
The linespoints style does both lines and points.
The impulses style displays a vertical line from the x axis
(or from the grid base for splot) to each point. The dots style
plots a tiny dot at each point; this is useful for
scatter plots with many points.
The errorbars (or yerrorbars) and xerrorbars styles are only relevant to
2-d data file plotting. It
is treated like points for splots and function plots. For data
plots, errorbars is like points, except that a vertical or
horizontal error bar is also drawn: for each point (x,y), a line is
drawn from (x,ylow) to (x,yhigh) or (xlow,y) to (xhigh,y). A tic mark is
placed at the ends of the error bar. The (ylow, yhigh) or (xlow,xhigh)
values are read from the data file's columns, as specified with the using
option to plot. See plot errorbars for more information.
The boxes style is only relevant to 2-d plotting. Another style
called boxerrorbars is also available and is only relevant to 2-d
data file plotting. This style is a combination of the boxes and
errorbars styles. The boxes style draws a box centred about
the given x coordinate from the yaxis to the given y coordinate.
The width of the box is obtained in one of three ways. First, if a
data file has a fifth column, this will be used to set the width of
the box. Columns 3 and 4 (for boxerrorbars) are necessary but
ignored in this instance. Secondly, if a width has been set using
the set boxwidth command, this will be used. Otherwise the width
of each box will be calculated automatically so that it touches the
adjacent boxes.
The boxes style is only relevant to 2-d plotting. It draws
a box centred about the given x coordinate from the yaxis to the given
y coordinate. The width of the box is obtained in one of three
ways. If a data file has a third column, this will be used to set
the width of the box. Otherwise, if a width has been set using the
set boxwidth command, this will be used. Otherwise the width of each
box will be calculated automatically so that it touches the adjacent
boxes. Another style called boxerrorbars is also available and is
only relevant to 2-d data file plotting. This style is a combination
of the boxes and errorbars styles. The boxwidth will come from the fourth
column if the y errors are in the form of "ydelta" and the boxwidth was not
previously set equal to -2.0 (set boxwidth -2.0) or from the fifth
column if the y errors are in the form of "ylow yhigh". The boxwidth = -2.0 is
for the special case of 4-column data and the y errors are in the form of
"ylow yhigh". The boxwidth will be calculated automatically so that each box
touches the adjacent boxes. The width will also be automatically calculated
if 3-column data is used. The boxxyerrorbars
style is like the xyerrorbars option except that a box with width
(xhigh-xlow) and height (yhigh-ylow) is drawn instead of a cross of that size.
For 2-d data with more than two columns, gnuplot will be picky about the
allowed plot styles. For three columns only xerrorbars, boxes,
errorbars (or yerrorbars), and boxerrorbars are allowed. If another plot
style is used,
the style will be changed to yerrorbars. The boxerrorbars style will
calculate the boxwidth automatically. For four columns only xerrorbars,
xyerrorbars, boxxyerrorbars, boxerrorbars, and errorbars (or
yerrorbars) are allowed. An illegal plot style will be changed to
yerrorbars. Five column data allows only the boxerrorbars style. An
illegal style will be changed to boxerrorbars before plotting. Six and
seven column data only allows the xyerrorbars and boxxyerrorbars styles.
Illegal styles will be changed to xyerrorbars before plotting. Use the
using option for plot to setup the correct number of columns for the
style you want.
The steps and fsteps styles is only relevant to 2-d plotting.
The steps style connects consecutive points with two line segments:
the first from (x1,y1) to (x2,y1) and the second from (x2,y1) to (x2,y2).
The fsteps: (x1,y1) to (x1,y2) and (x1,y2) to (x2,y2). Steps Demo.
Default styles are chosen with the set function style and
set data style commands.
By default, each function and data file will use a different
line type and point type, up to the maximum number of available
types. All terminal drivers support at least six different point
types, and re-use them, in order, if more than six are required.
The LaTeX driver supplies an additional six point types (all variants
of a circle), and thus will only repeat after twelve curves are
plotted with points.
If desired, the style and (optionally) the line type and point type
used for a curve can be specified.
Syntax:
with <style> {<linetype> {<pointtype>}}
where <style> is either lines, points, linespoints, impulses,
dots, steps, fstepsm {x,y,xy}errorbars, boxes, boxerrorbars,
or boxxyerrorbars. The <linetype> and <pointtype> are
positive integer constants or expressions and specify the line type
and point type to be used for the plot. Line type 1 is the first line
type used by default, line type 2 is the second line type used by
default, etc.
Examples:
This plots sin(x) with impulses:
plot sin(x) with impulses
This plots x*y with points, x**2 + y**2 default:
splot x*y w points, x**2 + y**2
This plots tan(x) with the default function style, "data.1" with lines:
plot [ ] [-2:5] tan(x), "data.1" with l
This plots "leastsq.dat" with impulses:
plot 'leastsq.dat' w i
This plots the data file 'population' with boxes:
plot "population" with boxes
This plots "exper.dat" with errorbars and lines connecting the points:
plot 'exper.dat' w lines, 'exper.dat' w errorbars
Here 'exper.dat' should have three or four data columns.
This plots x**2 + y**2 and x**2 - y**2 with the same line type:
splot x**2 + y**2 with line 1, x**2 - y**2 with line 1
This plots sin(x) and cos(x) with linespoints, using the
same line type but different point types:
plot sin(x) with linesp 1 3, cos(x) with linesp 1 4
This plots file "data" with points style 3:
plot "data" with points 1 3
Note that the line style must be specified when specifying the point
style, even when it is irrelevant. Here the line style is 1 and the
point style is 3, and the line style is irrelevant.
See set style to change the default styles.
title
A title of each plot appears in the key. By default the title is
the function or file name as it appears on the plot command line.
The title can be changed by using the title option. This option
should precede any with option.
Syntax:
title "<title>"
where <title> is the new title of the plot and must be enclosed in
quotes. The quotes will not be shown in the key. Special characters
may be given as backslash and their octal value (\345), \t is
anderstood.
Examples:
This plots y=x with the title 'x':
plot x
This plots the "glass.dat" file with the title 'surface of revolution':
splot "glass.dat" title 'surface of revolution'
This plots x squared with title "x^2" and "data.1" with title
'measured data':
plot x**2 title "x^2", "data.1" t 'measured data'
The title can be omitted from the key with the "notitle" option for
plot and splot. This can be useful when some curves
are plotted solely for decoration; for example, if one wanted a
circular border for a polar plot, he could say:
Example:
set polar
plot my_function(x), 1 notitle
This would generate a key entry for "my_function" but not for "1".
See the poldat.dem example.
arrow
Arbitrary arrows can be placed on a plot using the set arrow
command.
Syntax:
set arrow {<tag>} {from <sx>,<sy>{,<sz>}}
{to <ex>,<ey>{,<ez>}} {{no}head}
set noarrow {<tag>}
show arrow
Unspecified coordinates default to 0. The x, y, and z values are in
the graph's coordinate system. The z coordinate is only used in
splot commands. <tag> is an integer that identifies the arrow. If no
tag is given, the lowest unused tag value is assigned automatically.
The tag can be used to delete or change a specific arrow. To change
any attribute of an existing arrow, use the set arrow command with
the appropriate tag, and specify the parts of the arrow to be
changed. Specifying nohead requests the arrow be drawn without a head
(yielding a line segment). By default, arrows have heads.
Arrows outside the plotted boundaries are permitted but may cause
device errors.
Examples:
To set an arrow pointing from the origin to (1,2), use:
set arrow to 1,2
To set an arrow from (-10,4,2) to (-5,5,3), and tag the arrow number
3, use:
set arrow 3 from -10,4,2 to -5,5,3
To change the preceding arrow begin at 1,1,1, without an arrow head,
use:
set arrow 3 from 1,1,1 nohead
To delete arrow number 2 use:
set noarrow 2
To delete all arrows use:
set noarrow
To show all arrows (in tag order) use:
show arrow
autoscale
Auto scaling may be set individually on the x, y or z axis
or globally on all axes. The default is to autoscale all axes.
When autoscaling, the plot range is automatically computed and the
dependent axis (y for a plot and z for splot) is scaled to
include the range of the function or data being plotted.
If autoscaling of the dependent axis (y or z) is not set, the
current y or z range is used.
See set yrange or set zrange.
Autoscaling the independent variables (x for plot and x,y for
splot) is a request to set the domain to match any data file being
plotted. If there are no data files then autoscaling an independent
variable has no effect. In other words, in the absence of a data
file, functions alone do not affect the x range (or the y range if
plotting z = f(x,y)).
See set xrange, or set yrange.
The behavior of autoscaling remains consistent in parametric mode,
however, there are more dependent variables and hence more control
over x, y, and z plot scales. In parametric mode, the independent or
dummy variable is t for plots and u,v for splots. Autoscale in
parametric mode, then, controls all ranges (t, u, v, x, y, and z) and
allows x, y, and z to be fully autoscaled.
See set parametric.
Syntax:
set autoscale <axes>
set noautoscale <axes>
show autoscale
where <axes> is either x, y, z or xy. If <axes> is not given
then all axes are assumed.
Examples:
This sets autoscaling of the y axis. x axis autoscaling is not
affected.
set autoscale y
This sets autoscaling of the x and y axes.
set autoscale xy
This sets autoscaling of the x, y and z axes.
set autoscale
This disables autoscaling of the x, y and z axes.
set noautoscale
This disables autoscaling of the z axis only.
set noautoscale z
clip
GNUPLOT can clip data points and lines that are near the boundaries
of a plot.
Syntax:
set clip <clip-type>
set noclip <clip-type>
show clip
Three clip types are supported by GNUPLOT: points, one, and two.
One, two, or all three clip types may be active for a single plot.
The points clip type forces GNUPLOT to clip (actually, not plot at
all) data points that fall within but too close to the boundaries
(this is so the large symbols used for points will not extend outside
the boundary lines). Without clipping points near the boundaries may
look bad; try adjusting the x and y ranges.
Setting the one clip type causes GNUPLOT to plot the line segments
which have only one of the two endpoints within the plotting region.
Only the in-range portion of the line is drawn. The alternative is to
not draw any portion of the line segment.
Some lines may have both endpoints out of range, but pass through the
plotting area. Setting the two clip-type allows the visible portion
of these lines to be drawn.
In no case is a line drawn outside the plotting area.
The defaults are noclip points, clip one, and noclip two.
To check the state of all forms of clipping, use
show clip
For backward compatibility with older versions, the following forms
are also permitted.
set clip
set noclip
set clip is synonymous with set clip points. set noclip turns
off all three types of clipping.
cntrparam
Sets the different parameters for the contouring plot (see also contour).
Syntax:
set cntrparam { { linear | cubicspline | bspline } |
points <n> |
order <n> |
levels { [ auto ] <n> |
discrete <z1>,<z2>, ... |
incremental {<start>, <incr>{, <end>} } }
Examples:
set cntrparam bspline
set cntrparam points 7
set cntrparam order 10
set cntrparam levels auto 5 # 5 automatic levels
set cntrparam levels discrete .1,1/exp(1),.9 # 3 discrete at .1,.37,.9
set cntrparam levels incremental 0,.1,.4
# 5 incremental levels at 0, .1, .2, .3 and .4
set cntrparam levels 10
# sets n = 10 retaining current setting of auto, discr. and
# increment's start and increment value, while changing end
set cntrparam levels incremental 100,50
# set start = 100 and increment = 50, retaining n levels
This command controls the way contours are plotted. <n> should be an
integral constant expression and <z1>, <z2> any constant expressions.
The parameters are:
linear, cubicspline, bspline - Controls type of approximation or
interpolation. If linear, then the contours are drawn piecewise
linear, as extracted from the surface directly. If cubicspline, then
piecewise linear contours are interpolated to form a somewhat smoother
contours, but which may undulate. The third option is the uniform
bspline, which only approximates the piecewise linear data but is
guaranteed to be smoother.
points - Eventually all drawings are done with piecewise linear
strokes. This number controls the number of points used to
approximate a curve. Relevant for cubicspline and bspline modes
only.
order - Order of the bspline approximation to be used. The bigger this
order is, the smoother the resulting contour. (Of course, higher order
bspline curves will move further away from the original piecewise linear
data.) This option is relevant for bspline mode only. Allowed values are
integers in the range from 2 (linear) to 10.
levels - Number of contour levels, 'n'. Selection of the levels is
controlled by 'auto' (default), 'discrete', and 'incremental'. For 'auto',
if the surface is bounded by zmin and zmax then contours will be
generated from zmin+dz to zmax-dz in steps of size dz, where
dz = (zmax - zmin) / (levels + 1). For 'discrete', contours will be
generated at z = z1, z2 ... as specified. The number of discrete levels
is limited to MAX_DISCRETE_LEVELS, defined in plot.h to be 30. If
'incremental', contours are generated at <n> values of z beginning at
<start> and increasing by <increment>.
dgrid3d
Enables and sets the different parameters for non grid to grid data mapping.
Syntax:
set dgrid3d {,{<row_size>}{,{<col_size>}{,<norm>}}}
set nodgrid3d
Examples:
set dgrid3d 10,10,2
set dgrid3d ,,4
The first selects a grid of size 10 by 10 to be constructed and the use
of L2 norm in the distance computation. The second only modifies the norm
to be used to L4.
By default this option is disabled. When enabled, 3d data read from a file
is always treaded as a scattered data set. A grid with dimensions derived
from a bounding box of the scattered data and size as specified by the
row/col_size above is created for plotting and contouring. The grid is
equally spaced in x and y while the z value is computed as a weighted
average of the scattered points distance to the grid points. The closer
the scatter points to a grid point are the more effect they have on that
grid point. The third, norm, parameter controls the "meaning" of the
distance, by specifying the distance norm. This distance computation
is optimized for powers of 2 norms, specifically 1, 2, 4, 8, and 16, but
any nonnegative integer can be used.
This dgrid3d option is a simple low pass filter that converts scattered data
to a grid data set. More sophisticated approaches to this problem exists and
should be used as a preprocess to and outside gnuplot if this simple solution
is found inadequate.
format
The format of the tic-mark labels can be set with the set format
command. The default format for both axes is "%g", but other formats
such as "%.2f" or "%3.0fm" are often desirable. Anything accepted by
printf when given a double precision number, and then accepted by the
terminal, will work. In particular, the formats f, e, and g will work,
and the d, o, x, c, s, and u formats will not work. If data type for the
axis is date/time, the format string must contain valid codes for the
strftime function (do: man strftime). It's recommended to stick to the
conversion codes accepted by the set timefmt command. If the format
string looks like a floating point format, then gnuplot tries to construct
a reasonable format.
Syntax:
set format {<axes>} {"<format-string>"}
show format
where <axes> is either x, y, z, xy, or nothing (which is the
same as xy). The length of the string representing a ticmark (after
formatting with printf) is restricted to 100 characters. If the
format string is omitted, the format will be returned to the default
"%g". For LaTeX users, the format "$%g$" is often desirable. If the
empty string "" is used, no label will be plotted with each tic,
though the tic mark will still be plotted. To eliminate all tic marks,
use set noxtics or set noytics.
For plot newlines (\n) is accepted in the xaxis format string, and
for splot newlines is allowed for both x- and yaxis format strings.
See also set xtics and set ytics for more control over tic labels.
key
The set key enables a key describing curves on a plot. By default
the key is placed in the upper right corner of the plot. The keywords
left, right, top, bottom, outside and below is provided to
place the keys in the other corners inside the plot or to the right
(outside) or below the plot. They may be given alone or combined.
Justification of the key label is controled by Left or Right. The
default is Right.
Syntax:
set key
set key <x>,<y>{,<z>}
set key <keyword> {<keyword> {<justification>}}
set nokey
show key
The coordinates <x>, <y> (and <z> for splots) specify the location
of the key on the plot. The key is drawn as a sequence of lines, with
one plot described on each line. On the right hand side of each line
is a representation that attempts to mimic the way the curve is
plotted. On the left side of each line is the text description,
obtained from the plot command. See plot title to change this
description. The lines are vertically arranged so an imaginary
straight line divides the left- and right-hand sides of the key. It is
the coordinates of this line that are specified with the set key
command. In a plot, only the x and y coordinates are used to specify
the line position. For a splot, x, y and z are all being used as a
3-d location mapped using the same mapping as the plot itself to form
the required 2-d screen position of the imaginary line.
Some or all of the key may be outside of the plot boundary, although
this may interfere with other labels and may cause an error on some
devices. If you use the keywords outside or below, gnuplot makes
space for the keys and the plot becomes smaller. Putting keys outside
to the right, they occupy as few colums as possible, and putting them
below, as many culumns as possible (depending of the length of the
labels). Thus stealing as little space from the plot as possible.
Examples:
This places the key at the default location:
set key
This disables the key:
set nokey
This places a key at coordinates 2,3.5,2
set key 2,3.5,2
Put the keys below the plot
set key below
Place the beys in the bottom left corner and justify the text left:
set key left bottom Left
Put it in the default corner:
set key
label
Arbitrary labels can be placed on the plot using the set label
command. If the z coordinate is given on a plot it is ignored; if
it is missing on a splot it is assumed to be 0. The strings is scanned
for backslash-octal (\nnn) conversion.
Syntax:
set label {<tag>} {"<label_text>"} {at <x>,<y>{,<z>}}
{<justification>}
set nolabel {<tag>}
show label
The text defaults to "", and the position to 0,0,0. The <x>, <y>, and
<z> values are in the graph's coordinate system. The tag is an
integer that is used to identify the label. If no <tag> is given, the
lowest unused tag value is assigned automatically. The tag can be used
to delete or change a specific label. To change any attribute of an
existing label, use the set label command with the appropriate tag,
and specify the parts of the label to be changed.
By default, the text is placed flush left against the point x,y,z.
To adjust the way the label is positioned with respect to the point
x,y,z, add the parameter <justification>, which may be left, right
or center, indicating that the point is to be at the left, right or
center of the text. Labels outside the plotted boundaries are
permitted but may interfere with axes labels or other text.
If one (or more) axis is timeseries, the coordiate should be given as
a quoted time string according to the timefmt-format string. See
set {x,y,z}data and set timefmt.
Examples:
To set a label at (1,2) to "y=x" use:
set label "y=x" at 1,2
To set a label "y=x^2" with the right of the text at (2,3,4), and tag
the label number 3, use:
set label 3 "y=x^2" at 2,3,4 right
To change the preceding label to center justification, use:
set label 3 center
To delete label number 2 use:
set nolabel 2
To delete all labels use:
set nolabel
To show all labels (in tag order) use:
show label
Timeseries (timefmt="%d/%m/%y,%H:%M):
set label "Harvest" at "25/8/93",1
(The EEPIC, Imagen, LaTeX, and TPIC drivers allow \\ in a string to specify
a newline.)
parametric
The set parametric command changes the meaning of plot (splot)
from normal functions to parametric functions. The command
set noparametric changes the plotting style back to normal,
single-valued expression plotting.
In 2-d plotting, a parametric function is determined by a pair
of parametric functions operating on a parameter. An example
of a 2-d parametric function would be plot sin(t),cos(t) (which
defines a circle).
For 3-d plotting, the surface is described as x=f(u,v), y=g(u,v),
z=h(u,v). Therefore a triplet of functions are required. An example of
3-d parametric function would be cos(u)*cos(v),cos(u)*sin(v),sin(u)
(which defines a sphere). It takes three parametric function
specifications in terms of the parametric dummy arguments to describe
a single graph.
The total set of possible plots is a superset of the simple f(x)
style plots, since the two (three) functions can describe the
x and y (and z) values to be computed separately. In fact,
plots of the type t,f(t) (u,v,f(u,v)) are equivalent to those
produced with f(x) when the x values are computed using the
identity function as the first function.
Note that the order the parametric functions are specified is
xfunction, yfunction (and zfunction) and that each operates over the
common parametric domain.
Also, the set parametric function implies a new range of values.
Whereas the normal f(x) and f(x,y) style plotting assume an xrange
and yrange (and zrange), the parametric mode additionally specifies a
trange, urange, and vrange. These ranges may be set
directly with set trange, set urange and set vrange, or by
specifying the range on the plot or splot commands. Currently
the default range for these parametric variables is [-5:5].
Setting the ranges to something more meaningful is expected.
polar
The set polar command changes the meaning of the plot from
rectangular coordinates to polar coordinates. In polar coordinates,
the dummy variable (x) is an angle. The range of this angle is changed
from whatever it was to [0:2*pi], or, if degree unit has been selected,
to [0:360] (see set angles).
The command set nopolar changes the meaning of the plot back to the
default rectangular coordinate system. The range of x is changed from
whatever it was to [-10:10].
The set polar command is not supported for splots. See the
set mapping command for similar functionality for splots.
While in polar coordinates the meaning of an expression in x is really
r = f(x), where x is an angle of rotation. The xrange controls the
domain (the angle) of the function, and the yrange controls the range
(the radius). The plot is plotted in a rectangular box, and the x and
y axes are both in units of the radius. Thus, the yrange controls both
dimensions of the plot output. The tics and units are written along
the axes rather than at the left and bottom. These unit are offset by
<rmin> specified by the rrange (See set rrange). It is not
possible to specify different output dimensions in the x or y
directions. The yrange can be used to shift the plot diagonally to
display only the first or third quadrants.
Syntax:
set polar
set nopolar
show polar
Example:
set polar
plot x*sin(x)
plot [-2*pi:2*pi] [-3:3] x*sin(x)
The first plot uses the default polar angular domain of 0 to 2*pi.
The radius (and the size of the plot) is scaled automatically. The
second plot expands the domain, and restricts the range of the radius
(and the size of the plot) to [-3:3].
style
Plots may be displayed in one of thirteen styles: lines, points,
linespoints, impulses, dots, steps, fsteps, {x,y,xy}errorbars,
boxes, boxerrorbars, or boxxyerrorbars.
The lines style connects adjacent points with lines.
The points style displays a small symbol at each point.
The linespoints style does both lines and points.
The impulses style displays a vertical line from the x axis
(or from the grid base for splot) to each point. The dots style
plots a tiny dot at each point; this is useful for
scatter plots with many points.
The errorbars (or yerrorbars), xerrorbars, xyerrorbars styles are only
relevant to 2-d data file plotting. It
is treated like points for splots and function plots. For data
plots, errorbars is like points, except that a vertical or
horizontal error bar is also drawn: for each point (x,y), a line is
drawn from (x,ylow) to (x,yhigh) or (xlow,y) to (xhigh,y). A tic mark is
placed at the ends of the error bar. The (ylow, yhigh) or (xlow,xhigh)
values are read from the data file's columns, as specified with the using
option to plot. See plot errorbars for more information.
The boxes style is only relevant to 2-d plotting. It draws
a box centred about the given x coordinate from the yaxis to the given
y coordinate. The width of the box is obtained in one of three
ways. If a data file has a third column, this will be used to set
the width of the box. Otherwise, if a width has been set using the
set boxwidth command, this will be used. Otherwise the width of each
box will be calculated automatically so that it touches the adjacent
boxes. Another style called boxerrorbars is also available and is
only relevant to 2-d data file plotting. This style is a combination
of the boxes and errorbars styles. The boxwidth will come from the fourth
column if the y errors are in the form of "ydelta" and the boxwidth was not
previously set equal to -2.0 (set boxwidth -2.0) or from the fifth
column if the y errors are in the form of "ylow yhigh". The boxwidth = -2.0 is
for the special case of 4-column data and the y errors are in the form of
"ylow yhigh". The boxwidth will be calculated automatically so that each box
touches the adjacent boxes. The width will also be automatically calculated
if 3-column data is used. The boxxyerrorbars
style is like the xyerrorbars option except that a box with width
(xhigh-xlow) and height (yhigh-ylow) is drawn instead of a cross of that size.
For 2-d data with more than two columns, gnuplot will be picky about the
allowed plot styles. For three columns only xerrorbars, boxes,
errorbars (or yerrorbars), and boxerrorbars are allowed. If another plot
style is used,
the style will be changed to yerrorbars. The boxerrorbars style will
calculate the boxwidth automatically. For four columns only xerrorbars,
xyerrorbars, boxxyerrorbars, boxerrorbars, and errorbars (or
yerrorbars) are allowed. An illegal plot style will be changed to
yerrorbars. Five column data allows only the boxerrorbars style. An
illegal style will be changed to boxerrorbars before plotting. Six and
seven column data only allows the xyerrorbars and boxxyerrorbars styles.
Illegal styles will be changed to xyerrorbars before plotting. Use the
using option for plot to setup the correct number of columns for the
style you want.
The steps and fsteps styles is only relevant to 2-d plotting. The
steps style connects consecutive points with two line segments: the first
from (x1,y1) to (x2,y1) and the second from (x2,y1) to (x2,y2).
The fsteps: (x1,y1) to (x1,y2) and (x1,y2) to (x2,y2).
Default styles are chosen with the set function style and
set data style commands. See plot style for information about
how to override the default plotting style for individual functions.
Syntax:
set function style <style>
set data style <style>
show function style
show data style
where <style> is lines, points, linespoints, impulses,
dots, steps, fsteps, {x,y,xy}errorbars, boxes, boxerrorbars,
or boxxyerrorbars.
gpic
This driver is only known to work the Free Software Foundation
gpic/groff package. Modification for the Document Workbench
pic/troff package would be appreciated. FSF gpic can also
produce TeX output.
A simple graph can be formatted using
groff -p -mpic -Tps file.pic > file.ps.
The output from pic can be pipe-lined into eqn, so it is possible to put
complex functions in a graph with the set label and set {x/y}label commands.
For instance,
set ylab '@space 0 int from 0 to x alpha ( t ) roman d t@'
Will label the y-axis with a nice integral if formatted with the
command:
gpic filename.pic | geqn -d@@ -Tps | groff -m[macro-package] -Tps
> filename.ps
Figures made this way can be scaled to fit into a document. The pic
language is easy to understand, so the graphs can be edited by hand if
need be. All coordinates in the pic-file produced by gnuplot are given
as x+gnuplotx and y+gnuploty. By default x and y are given the value 0
If this line is removed with an editor in a number of files one can
put several graphs i one figure like this (default size is 5.0x3.0 inches)
.PS 8.0
x=0;y=3
copy "figa.pic"
x=5;y=3
copy "figb.pic"
x=0;y=0
copy "figc.pic"
x=5;y=0
copy "figd.pic"
.PE
This will produce an 8 inches wide figure with four graphs in two rows
on top of each other
One can also achieve the same thing by the command
set term pic x y
For example, using
.PS 6.0
copy "trig.pic"
.PE
Metafont Instructions
- Set your terminal to metafont:
set terminal mf
- Select an output-file, e.g.:
set output "myfigures.mf"
- Do your plots. Each plot will generate a separate character. Its default
size will be 5*3 inches. You can change the size by saying set size 0.5,0.5
or whatever fraction of the default size you want to have.
- Quit gnuplot.
- Generate a tfm- and gf-file by running metafont on the output of gnuplot.
Since the plot is quite large (5*3 in), you will have to use a version
of metafont that has a value of at least 150000 for memmax. On Unix-systems
these are conventionally installed under the name bigmf. For the following
assume that the command virmf stands for a big version of metafont. For example:
- Invoke metafont:
virmf '&plain'
- Select the output device: At the metafont prompt ('*') type:
\mode:=CanonCX; % or whatever printer you use
- Optionally select a magnification:
mag:=1; % or whatever you wish
- Input the gnuplot-file:
input myfigures.mf
On a typical Unix machine there will usually be a script called mf that
executes virmf '&plain', so you probably can substitute mf for virmf &plain.
This will generate two files: mfput.tfm and mfput.$$$gf (where $$$ indicates
the resolution of your device). The above can be conveniently achieved by
typing everything on the command line, e.g.:
virmf '&plain' '\mode:=CanonCX; mag:=1; input myfigures.mf'
In this case the output files will be named myfigures.tfm and
myfigures.300gf.
- Generate a pk-file from the gf-file using gftopk:
gftopk myfigures.300gf myfigures.300pk
The name of the output-file for gftopk depends on the dvi-driver you use.
Ask your local TeX-administrator about the naming conventions.
Next, either install the tfm- and pk-files in the appropriate directories,
or set your environment-variables properly. Usually this involves setting
TEXFONTS to include the current directory and do the same thing for the
environment-variable that your dvi-driver uses (no standard name here...).
This step is necessary so that TeX will find the font-metric file and your
dvi-driver will find the pk-file.
- To include your plots in your document you have to tell TeX the font:
\font\gnufigs=myfigures
Each plot you made is stored in a single character. The first plot is
character 0, the second is character 1, and so on... After doing the above
step you can use the plots just like any other characters. Therefore, to
place plots 1 and 2 centered in your document, all you have to do is:
\centerline{\gnufigs\char0}
\centerline{\gnufigs\char1}
in plain TeX. For LaTeX you can, of course, use the picture environment
and place the plot according to your wishes using the \makebox and \put
macros.
It saves you a lot of time, once you have generated the
font, since TeX handles the plots as characters and uses minimal time to
place them. Also the documents you make change more often, than the plots
do. Also it saves a lot of TeX-memory. One last advantage of
using the metafont-driver is that the dvi-file really remains device
independent, because no \special-commands are used as in the eepic- and
tpic-drivers.
mif
Several options may be set in the MIF 3.00 driver.
Syntax:
set terminal mif {<pentype>} {<curvetype>} {<help>}
<pentype> selects "colour" of the graphics.
colour plot lines with line types >= 0 in colour (MIF sep. 2-7).
monochrome plot all line types in black (MIF sep. 0).
<curvetype> selects how "curves" are plotted.
polyline plot curves as continuous curves.
vectors plot curves as collections of vectors
<help> print online help on standard error output.
help print a short description of the usage, and the options
? print a short description of the usage
This terminal driver produces Frame Maker MIF format version 3.00. It
plots in MIF Frames with the size 15*10 [cm], and plot primitives with
the same pen will be grouped in the same MIF group. Plot primitives in
a gnuplot plot will be plotted in a MIF Frame, and several MIF Frames
are collected in one large MIF Frame.
Plot primitives with line types >= 0 will as default be drawn in colour.
As default curves are plotted as continuous lines. The MIF font used for
text is "Times".
Examples:
set term mif
set term mif vectors
set term mif help
enhanced postscript
The "Enhanced PostScript" driver has extended capabilities
beyond the regular PostScript driver. Several options may be
set in the Enhanced PostScript driver.
Syntax:
set terminal enhpost {<mode>} {<color>} {<dashed>}
{<duplexing>} {"<fontname>"} {<fontsize>}
where <mode> is landscape, portrait, eps or default.
Selecting default sets all options to their defaults.
<color> is either color or monochrome.
<dashed> is either solid or dashed.
<duplexing> is either simplex or duplex (don't set this if your printer can't do it).
"<fontname>" is the name of a valid PostScript font.
<fontsize> is the size of the font in PostScript points.
Defaults are landscape, monochrome, dashed, 'printer-default-plex',
"Helvetica", and 14pt.
Default size of Enhanced PostScript plot is landscape mode 10 inches wide
and 7 inches high.
To get EPS output, use the eps mode and make only one plot per file.
In eps mode the whole plot is halved in size; the fonts are half the
given size, and the plot is 5 inches wide and 3.5 inches high.
Examples:
set term enhpost landscape 22
set term enhpost eps 14
set term enhpost landscape simplex
set size 0.7,1.4
set term enhpost portrait color "Times-Roman" 14
This "enhanced" driver allows any text to contain the following special
formatting instructions (e.g., use the SET FORMAT command to put them in
for axis scales):
Control Examples Explanation
^ a^x superscript
_ a_x subscript
@ @x or a@^b_c phantom box (occupies no width)
{text} can be used to allow multiple-character text, where only a single
character is expected (e.g., 2^{10}). To change the font and/or size, use
the full form: {/[fontname][=fontsize] text} (For example,
{/Symbol=20 G} is a 20 point GAMMA). (The '/' character MUST be the first
character after the '{'.)
The phantom box is useful for a@^b_c to align superscript and subscript,
and for overwriting an accent on a letter.
It is common sense to put the shorter of the two in the phantom box.
You can access special symbols numerically by specifying
\character-code (in octal), e.g., {/Symbol \245} is infinity.
You can escape control characters using \, e.g., \\, \{, \}, \^, \@
graph-menu
The gnuplot graph window has the following options on a pop up menu
accessed by pressing the right mouse button or selecting Options
from the system menu:
Bring to Top when checked brings the graph window to
the top after every plot.
Color when checked enables color linestyles.
When unchecked it forces monochrome linestyles.
Copy to Clipboard copies a bitmap and a Metafile picture.
Background... sets the window background color.
Choose Font... selects the font used in the graphics window.
Line Styles... allows customization of the line colors
and styles.
Print... prints the graphics windows using a Windows printer
driver and allows selection of the printer and scaling of the output.
The output produced by Print is not as good as that from gnuplot's
own printer drivers.
Update wgnuplot.ini saves the current window locations, window
sizes, text window font, text window font size, graph window font,
graph window font size, background color and linestyles to the
initialisation file WGNUPLOT.INI.
text-menu
The gnuplot text window has the following options on a pop up menu
accessed by pressing the right mouse button or selecting Options
from the system menu:
Copy to Clipboard copies marked text to the clipboard.
Paste copies text from the clipboard as if typed by the user.
Choose Font... selects the font used in the text window.
System Colors when selected makes the text window honor the
System Colors set using the Control Panel. When unselected,
text is black or blue on a white background.
Update wgnuplot.ini saves the current text window location, text
window size, text window font and text window font size to the
initialisation file WGNUPLOT.INI.
MENU BAR
If the menu file WGNUPLOT.MNU is found in the same directory as
WGNUPLOT.EXE, then the menu specified in WGNUPLOT.MNU will
be loaded.
Menu commands are:
[Menu] Start a new menu with the name on the following line
[EndMenu] End current menu.
-- Insert a horizontal menu separator
| Insert a vertical menu separator
[Button] Put next macro on a push button instead of a menu.
Macros take two lines with the macro name (menu entry) on the first
line and the macro on the second line. Leading spaces are ignored.
Macros commands are:
[INPUT] Input string with prompt terminated by [EOS] or {ENTER}
[EOS] End Of String terminator. Generates no output.
[OPEN] Get name of file to open from list box, with title of
list box terminated by [EOS], followed by default
filename terminated by [EOS] or {ENTER}
This uses COMMDLG.DLL from Windows 3.1.
[SAVE] Get name of file to save. Similar to [OPEN]
Macros character substitutions are:
{ENTER} Carriage Return '\r'
{TAB} Tab '\011'
{ESC} Escape '\033'
{^A} '\001'
...
{^_} '\031'
Macros are limited to 256 characters after expansion.
tics
By default, tics are drawn inwards from the border on all four sides.
The set tics command can be used to change the tics to be
drawn outwards on the left and bottom borders only.
This is useful when doing impulse plots.
Syntax:
set tics {<direction>}
show tics
where <direction> may be in or out. set tics defaults to in.
See also the set xtics, set ytics, and set ztics command for more
control of tic marks and set mxtics, and set mytics for minor tic marks
Using splot, in 3-d plots, one can adjust the relative height of the
vertical (Z) axis using set ticslevel. The numeric argument provided
specifies the location of the bottom of the scale. a zero will put it
on the bottom grid and any positive number somewhere along the z axis.
Syntax:
set ticslevel {<level>}
show tics
where <level> is a non negative numeric argument. For example,
set ticslevel 0.5
sets the tics level to the default value.
See also the set view.
The size of the major tic marks can be adjusted via set ticscale. The
default size is 1.0. Minor tic marks are 0.5*ticscale. Note that it is
possible to have the tic marks pointing outward using a negative size.
Syntax:
set ticscale {<size>}
show tics
timefmt
This command applies to timeseries where data is composed of dates/times.
It has no meaning unless the comand set {x,y,z}data time is given also.
The string argument tells gnuplot how to read timedata from the datafile.
Valid conversion codes are: %d (day of month,1-31), %m (month,1-12),
%y (year,0-99), %Y (year, 4 digits), %j (day of year,1-365), %H (hour,0-24),
%M (minute,0-60), %S (second,0-60). Any character is allowed in the string
(included space), but must match exactly. Backslash-octals (\nnn) is
converted to char, also \t (tab) is understood. If there is no separating
character between the date/time elements, then %d, %m, %y, %H, %M and %S read
2 digits each, %Y read 4 digits and %j reads 3 digits. The columns in the
timedata counts one column in the "using n:n" specification.
See also set {x,y,z}data.
Example:
set timefmt "%d/%m/%Y\t%H:%M"
tells gnuplot to read date and time separated by tab.
xtics
Fine control of the x axis tic marks is possible with the
set xtics command. The x-axis tic marks may be turned off with the
set noxtics command. They may be turned on (the default state) with
set xtics.
Syntax:
set xtics { {<start>, <incr>{, <end>}} |
{({"<label>"} <pos> {, {"<label>"} <pos>}...)} }
set noxtics
show xtics
The <start>, <incr>, <end> form specifies that a series of tics will
be plotted on the x axis between the x values <start> and <end>
with an increment of <incr>. If <end> is not given it is assumed to be
infinity. The increment may be negative. For example,
set xtics 0,.5,10
makes tics at 0, 0.5, 1, 1.5, ..., 9.5, 10.
The ("<label>" <pos>, ...) form allows arbitrary tic positions or
non-numeric tic labels. A set of tics are a set of positions, each
with its own optional label. Note that the label is a string enclosed
by quotes, and may be a constant string, such as "hello", or contain
formatting information for the tic number (which is the same as the
position), such as "%3f clients". See set format for more
information about this case. The label may even be empty.
Examples:
set xtics ("low" 0, "medium" 50, "high" 100)
set xtics (1,2,4,8,16,32,64,128,256,512,1024)
set xtics ("bottom" 0, "" 10, "top" 20)
Tics will only be plotted when in range.
In case of timeseries data position values must be given as qouted
dates-times according to the format timefmt.
ylabel
The set ylabel command sets the y-axis label. The position of this
label depends on the terminal, and can be one of the following three
positions (the position can be adjusted with optional parameters).
1. Horizontal text flushed left at the top left of the plot.
Terminals that cannot rotate text will probably use this method.
2. Vertical text centered vertically at the left of the plot.
Terminals that can rotate text will probably use this method.
3. Horizontal text centered vertically at the left of the plot.
The EEPIC, LaTeX and TPIC drivers use this method. The user must insert
line breaks using \\ to prevent the ylabel from overwriting
the plot. To produce a vertical row of characters, add \\
between every printing character (but this is ugly).
Syntax:
set ylabel {"<label>"} {<xoff>}{,<yoff>}
show ylabel
With no parameters, the label is cleared. Specifying constants <xoff>
or <yoff> as optional offsets for the label will move the label <xoff>
or <yoff> character screen coordinates. For example,
set ylabel -1
will change only the x offset of the ylabel, moving the label roughly
one character width left of its default position. This is especially
useful with the LaTeX driver.
Multiline ylabel is supported, put a newline in the string (\n). The string
is also scanned for backslash-octal (\nnn) conversion.
(The EEPIC, Imagen, LaTeX, and TPIC drivers allow \\ in a string to specify
a newline.)
zlabel
The set zlabel command sets the z-axis label that is centered along
the z axis. Using the optional x,y screen offsets, the label can be
placed anywhere on the plot. set zlabel with no parameters clears
the label.
Syntax:
set zlabel {"<label>"} {<xoff>}{,<yoff>}
show zlabel
Specifying constants <xoff> or <yoff> as optional offsets for the
label will move the label <xoff> or <yoff> character screen
coordinates. For example,
set zlabel ,1
will change only the y offset of the zlabel, moving the label roughly
one character height up.
The zlabel will be drawn whenever surfaces or contours are plotted,
in the space above the grid level.
Multiline labels is supported, put a newline (\n) in the string.
Backslash-octal conversion (\nnn) on the string is performed.
Example:
set zlabel "Line one.\nLine two with 8-bit char: \345."
(The EEPIC, Imagen, LaTeX, and TPIC drivers allow \\ in a string to specify
a newline.)
Binary Data
Gnuplot will dynamically determine if a datafile is ASCII or
binary. ASCII data files are discussed in the plot section.
For three dimensions, single precision floats are stored as follows:
<ncols> <x0> <x1> <x2> ...
<y0> <z0,0> <z0,1> <z0,2> ...
<y1> <z1,0> <z1,1> <z1,2> ...
which is converted into triplet:
<x0> <y0> <z0,0>
<x0> <y1> <z0,1>
<x0> <y2> <z0,2>
<x1> <y0> <z1,0>
<x1> <y1> <z1,1>
<x1> <y2> <z1,2>
These triplets are then converted into gnuplot iso_curves and then
uses gnuplot to do the rest of the plotting.
A collection of matrix and vector manipulation routines (in C) are
provided in gnubin.c. The routine to write binary data is
int fwrite_matrix(file,m,nrl,nrl,ncl,nch,row_title,column_title)
bugs
The bessel functions do not work for complex arguments.
The gamma function does not work for complex arguments.
There is a bug in the stdio library for old Sun operating systems
(SunOS Sys4-3.2). The "%g" format for 'printf' sometimes incorrectly
prints numbers (e.g., 200000.0 as "2"). Thus, tic mark labels may be
incorrect on a Sun4 version of GNUPLOT. A work-around is to rescale
the data or use the set format command to change the tic mark format
to "%7.0f" or some other appropriate format. This appears to have been
fixed in SunOS 4.0.
Another bug: On a Sun3 under SunOS 4.0, and on Sun4's under Sys4-3.2
and SunOS 4.0, the 'sscanf' routine incorrectly parses "00 12" with
the format "%f %f" and reads 0 and 0 instead of 0 and 12. This
affects data input. If the data file contains x coordinates that are
zero but are specified like '00', '000', etc, then you will read the
wrong y values. Check any data files or upgrade the SunOS.
It appears to have been fixed in SunOS 4.1.1.
Microsoft C 5.1 has a nasty bug associated with the %g format for
printf. When any of the formats "%.2g", "%.1g", "%.0g", "%.g" are
used, printf will incorrectly print numbers in the range 1e-4 to 1e-1.
Numbers that should be printed in the %e format are incorrectly
printed in the %f format, with the wrong number of zeros after the
decimal point.
To work around this problem, use the %e or %f formats explicitly.
GNUPLOT, when compiled with Microsoft C, did not work correctly on two
VGA displays that were tested. The CGA, EGA and VGA drivers should
probably be rewritten to use the Microsoft C graphics library.
GNUPLOT compiled with Borland C++ uses the Turbo C graphics drivers and
does work correctly with VGA displays.
VAX/VMS 4.7 C compiler release 2.4 also has a poorly implemented %g
format for printf. The numbers are printed numerically correct, but
may not be in the requested format. The K&R second edition says that
for the %g format, %e is used if the exponent is less than -4 or greater
than or equal to the precision. The VAX uses %e format if the exponent
is less than -1. The VAX appears to take no notice of the precision
when deciding whether to use %e or %f for numbers less than 1.
To work around this problem, use the %e or %f formats explicitly.
From the VAX C 2.4 release notes:
e,E,f,F,g,G Result will always contain a decimal point.
For g and G, trailing zeros will not be removed from the result.
VAX/VMS 5.2 C compiler release 3.0 has a slightly better implemented
%g format than release 2.4, but not much. Trailing decimal points are
now removed, but trailing zeros are still not removed from %g numbers
in exponential format.
ULTRIX X11R3 has a bug that causes the X11 driver to display "every
other" plot. The bug seems to be fixed in DEC's release of X11R4 so
newer releases of ULTRIX don't seem to have the problem. Solutions for
older sites include upgrading the X11 libraries (from DEC or direct from
MIT) or defining ULTRIX_KLUDGE when compiling the x11.trm file. Note
that the kludge is not an ideal fix, however.
The constant HUGE was incorrectly defined in the NeXT OS 2.0 operating
system. HUGE should be set to 1e38 in plot.h. This error has been
corrected in the 2.1 version of NeXT OS.
Some older models of HP plotters do not have a page eject command 'PG'.
The current HPGL driver uses this command in HPGL_reset. This may need
to be removed for these plotters. The current PCL5 driver uses HPGL/2
for text as well as graphics. This should be modified to use scalable
PCL fonts.
On the Atari version, it is not possible to send output directly to
the printer (using /dev/lp as output file), since CRs are added to LFs in
binary output. As a workaround write the output to a file and copy it to
the printer afterwards using a shell command.