GNU Octave Manual Version 3 by John W. Eaton, David Bateman, Søren Hauberg Paperback (6"x9"), 568 pages ISBN 095461206X RRP £24.95 ($39.95) 
15.1.1 TwoDimensional Plots
The plot
function allows you to create simple xy plots with
linear axes. For example,
x = 10:0.1:10; plot (x, sin (x));
displays a sine wave shown in Figure 151. On most systems, this command will open a separate plot window to display the graph.
The function fplot
also generates twodimensional plots with
linear axes using a function name and limits for the range of the
xcoordinate instead of the x and y data. For example,
fplot (@sin, [10, 10], 201);
produces a plot that is equivalent to the one above, but also includes a legend displaying the name of the plotted function.
 Function File: plot (y)
 Function File: plot (x, y)
 Function File: plot (x, y, property, value, ...)
 Function File: plot (x, y, fmt)
 Function File: plot (h, ...)
 Produces twodimensional plots. Many different combinations of
arguments are possible. The simplest form is
plot (y)
where the argument is taken as the set of y coordinates and the x coordinates are taken to be the indices of the elements, starting with 1.
To save a plot, in one of several image formats such as PostScript or PNG, use the
print
command.If more than one argument is given, they are interpreted as
plot (y, property, value, ...)
or
plot (x, y, property, value, ...)
or
plot (x, y, fmt, ...)
and so on. Any number of argument sets may appear. The x and y values are interpreted as follows:
 If a single data argument is supplied, it is taken as the set of y coordinates and the x coordinates are taken to be the indices of the elements, starting with 1.
 If the x is a vector and y is a matrix, then the columns (or rows) of y are plotted versus x. (using whichever combination matches, with columns tried first.)
 If the x is a matrix and y is a vector, y is plotted versus the columns (or rows) of x. (using whichever combination matches, with columns tried first.)
 If both arguments are vectors, the elements of y are plotted versus the elements of x.
 If both arguments are matrices, the columns of y are plotted versus the columns of x. In this case, both matrices must have the same number of rows and columns and no attempt is made to transpose the arguments to make the number of rows match. If both arguments are scalars, a single point is plotted.
Multiple propertyvalue pairs may be specified, but they must appear in pairs. These arguments are applied to the lines drawn by
plot
.If the fmt argument is supplied, it is interpreted as follows. If fmt is missing, the default gnuplot line style is assumed.
 ‘’
 Set lines plot style (default).
 ‘.’
 Set dots plot style.
 ‘^’
 Set impulses plot style.
 ‘L’
 Set steps plot style.
 ‘n’
 Interpreted as the plot color if n is an integer in the range 1 to 6.
 ‘nm’

If nm is a two digit integer and m is an integer in the
range 1 to 6, m is interpreted as the point style. This is only
valid in combination with the
@
or@
specifiers.  ‘c’

If c is one of
"k"
(black),"r"
(red),"g"
(green),"b"
(blue),"m"
(magenta),"c"
(cyan), or"w"
(white), it is interpreted as the line plot color.  ‘";title;"’

Here
"title"
is the label for the key.  ‘+’
 ‘*’
 ‘o’
 ‘x’
 Used in combination with the points or linespoints styles, set the point style.
The fmt argument may also be used to assign key titles. To do so, include the desired title between semicolons after the formatting sequence described above, e.g. "+3;Key Title;" Note that the last semicolon is required and will generate an error if it is left out.
Here are some plot examples:
plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+")
This command will plot
y
with points of type 2 (displayed as ‘+’) and color 1 (red),y2
with lines,y3
with lines of color 4 (magenta) andy4
with points displayed as ‘+’.plot (b, "*", "markersize", 3)
This command will plot the data in the variable
b
, with points displayed as ‘*’ with a marker size of 3.t = 0:0.1:6.3; plot (t, cos(t), ";cos(t);", t, sin(t), "+3;sin(t);");
This will plot the cosine and sine functions and label them accordingly in the key.
If the first argument is an axis handle, then plot into these axes, rather than the current axis handle returned by
gca
.See also semilogx, semilogy, loglog, polar, mesh, contour, bar, stairs, errorbar, xlabel, ylabel, title, print
 Function File: fplot (fn, limits)
 Function File: fplot (fn, limits, tol)
 Function File: fplot (fn, limits, n)
 Function File: fplot (..., fmt)
 Plot a function fn, within the defined limits. fn
an be either a string, a function handle or an inline function.
The limits of the plot are given by limits of the form
[xlo, xhi]
or[xlo, xhi, ylo, yhi]
. tol is the default tolerance to use for the plot, and if tol is an integer it is assumed that it defines the number points to use in the plot. The fmt argument is passed to the plot command.fplot ("cos", [0, 2*pi]) fplot ("[cos(x), sin(x)]", [0, 2*pi])
See also plot
The functions semilogx
, semilogy
, and loglog
are
similar to the plot
function, but produce plots in which one or
both of the axes use log scales.
 Function File: semilogx (args)
 Produce a twodimensional plot using a log scale for the x
axis. See the description of
plot
for a description of the arguments thatsemilogx
will accept.See also plot, semilogy, loglog
 Function File: semilogy (args)
 Produce a twodimensional plot using a log scale for the y
axis. See the description of
plot
for a description of the arguments thatsemilogy
will accept.See also plot, semilogx, loglog
 Function File: loglog (args)
 Produce a twodimensional plot using log scales for both axes. See
the description of
plot
for a description of the arguments thatloglog
will accept.See also plot, semilogx, semilogy
The functions bar
, barh
, stairs
, and stem
are useful for displaying discrete data. For example,
hist (randn (10000, 1), 30);
produces the histogram of 10,000 normally distributed random numbers shown in Figure 152.
 Function File: bar (x, y)
 Function File: bar (y)
 Function File: bar (x, y, w)
 Function File: bar (x, y, w, style)
 Function File: h = bar (..., prop, val)
 Function File: bar (h, ...)
 Produce a bar graph from two vectors of xy data.
If only one argument is given, it is taken as a vector of yvalues and the x coordinates are taken to be the indices of the elements.
The default width of 0.8 for the bars can be changed using w.
If y is a matrix, then each column of y is taken to be a separate bar graph plotted on the same graph. By default the columns are plotted sidebyside. This behavior can be changed by the style argument, which can take the values
"grouped"
(the default), or"stacked"
.The optional return value h provides a handle to the patch object. Whereas the option input handle h allows an axis handle to be passed. Properties of the patch graphics object can be changed using prop, val pairs.
See also barh, plot
 Function File: barh (x, y)
 Function File: barh (y)
 Function File: barh (x, y, w)
 Function File: barh (x, y, w, style)
 Function File: h = barh (..., prop, val)
 Function File: barh (h, ...)
 Produce a horizontal bar graph from two vectors of xy data.
If only one argument is given, it is taken as a vector of yvalues and the x coordinates are taken to be the indices of the elements.
The default width of 0.8 for the bars can be changed using w.
If y is a matrix, then each column of y is taken to be a separate bar graph plotted on the same graph. By default the columns are plotted sidebyside. This behavior can be changed by the style argument, which can take the values
"grouped"
(the default), or"stacked"
.The optional return value h provides a handle to the patch object. Whereas the option input handle h allows an axis handle to be passed. Properties of the patch graphics object can be changed using prop, val pairs.
See also bar, plot
 Function File: hist (y, x, norm)
 Produce histogram counts or plots.
With one vector input argument, plot a histogram of the values with 10 bins. The range of the histogram bins is determined by the range of the data.
Given a second scalar argument, use that as the number of bins.
Given a second vector argument, use that as the centers of the bins, with the width of the bins determined from the adjacent values in the vector.
If third argument is provided, the histogram is normalised such that the sum of the bars is equal to norm.
Extreme values are lumped in the first and last bins.
With two output arguments, produce the values nn and xx such that
bar (xx, nn)
will plot the histogram.See also bar
 Function File: stairs (x, y)
 Produce a stairstep plot. The arguments may be vectors or matrices.
If only one argument is given, it is taken as a vector of yvalues and the x coordinates are taken to be the indices of the elements.
If two output arguments are specified, the data are generated but not plotted. For example,
stairs (x, y);
and
[xs, ys] = stairs (x, y); plot (xs, ys);
are equivalent.
See also plot, semilogx, semilogy, loglog, polar, mesh, contour, bar, xlabel, ylabel, title
 Function File: h = stem (x, y, linespec)
 Plot a stem graph and return the handles of the line and marker
objects used to draw the stems. The default color is
"r"
(red). The default line style is""
and the default marker is"o"
.For example,
x = 1:10; stem (x);
plots 10 stems with heights from 1 to 10;
x = 1:10; y = ones (1, length (x))*2.*x; stem (x, y);
plots 10 stems with heights from 2 to 20;
x = 1:10; y = ones (size (x))*2.*x; h = stem (x, y, "b");
plots 10 bars with heights from 2 to 20 (the color is blue, and h is a 2by10 array of handles in which the first row holds the line handles and the second row holds the marker handles);
x = 1:10; y = ones (size (x))*2.*x; h = stem (x, y, ".k");
plots 10 stems with heights from 2 to 20 (the color is black, line style is
"."
, and h is a 2by10 array of handles in which the first row holds the line handles and the second row holds the marker handles);x = 1:10; y = ones (size (x))*2.*x; h = stem (x, y, ".k.");
plots 10 stems with heights from 2 to 20 (the color is black, line style is
"."
and the marker style is"."
, and h is a 2by10 array of handles in which the first row holds the line handles and the second row holds the marker handles);x = 1:10; y = ones (size (x))*2.*x; h = stem (x, y, "fill");
plots 10 stems with heights from 2 to 20 (the color is rgbtriple defined, the line style is
""
, the marker style is"o"
, and h is a 2by10 array of handles in which the first row holds the line handles and the second row holds the marker handles).Color definitions with rgbtriples are not valid!
See also bar, barh, plot
The contour
and contourc
functions produce twodimensional
contour plots from three dimensional data.
 Function File: contour (z)
 Function File: contour (z, vn)
 Function File: contour (x, y, z)
 Function File: contour (x, y, z, vn)
 Function File: contour (..., style)
 Function File: contour (h, ...)
 Function File: [c, h] = contour (...)
 Plot level curves (contour lines) of the matrix z, using the
contour matrix c computed by
contourc
from the same arguments; see the latter for their interpretation. The set of contour levels, c, is only returned if requested. For example:x = 0:2; y = x; z = x' * y; contour (x, y, z, 2:3)
The style to use for the plot can be defined with a line style style in a similar manner to the line styles used with the
plot
command. Any markers defined by style are ignored.The optional input and output argument h allows an axis handle to be passed to
contour
and the handles to the contour objects to be returned.See also contourc, patch, plot
 Function File: [c, lev] = contourc (x, y, z, vn)
 Compute isolines (contour lines) of the matrix z.
Parameters x, y and vn are optional.
The return value lev is a vector of the contour levels. The return value c is a 2 by n matrix containing the contour lines in the following format
c = [lev1, x1, x2, ..., levn, x1, x2, ... len1, y1, y2, ..., lenn, y1, y2, ...]
in which contour line n has a level (height) of levn and length of lenn.
If x and y are omitted they are taken as the row/column index of z. vn is either a scalar denoting the number of lines to compute or a vector containing the values of the lines. If only one value is wanted, set
vn = [val, val]
; If vn is omitted it defaults to 10.For example,
x = 0:2; y = x; z = x' * y; contourc (x, y, z, 2:3) => 2.0000 2.0000 1.0000 3.0000 1.5000 2.0000 2.0000 1.0000 2.0000 2.0000 2.0000 1.5000
See also contour
The errorbar
, semilogxerr
, semilogyerr
, and
loglogerr
functions produce plots with error bar markers. For
example,
x = 0:0.1:10; y = sin (x); yp = 0.1 .* randn (size (x)); ym = 0.1 .* randn (size (x)); errorbar (x, sin (x), ym, yp);
produces the figure shown in Figure 153.
 Function File: errorbar (args)
 This function produces twodimensional plots with errorbars. Many
different combinations of arguments are possible. The simplest form is
errorbar (y, ey)
where the first argument is taken as the set of y coordinates and the second argument ey is taken as the errors of the y values. x coordinates are taken to be the indices of the elements, starting with 1.
If more than two arguments are given, they are interpreted as
errorbar (x, y, ..., fmt, ...)
where after x and y there can be up to four error parameters such as ey, ex, ly, uy etc., depending on the plot type. Any number of argument sets may appear, as long as they are separated with a format string fmt.
If y is a matrix, x and error parameters must also be matrices having same dimensions. The columns of y are plotted versus the corresponding columns of x and errorbars are drawn from the corresponding columns of error parameters.
If fmt is missing, yerrorbars ("~") plot style is assumed.
If the fmt argument is supplied, it is interpreted as in normal plots. In addition the following plot styles are supported by errorbar:
 ‘~’
 Set yerrorbars plot style (default).
 ‘>’
 Set xerrorbars plot style.
 ‘~>’
 Set xyerrorbars plot style.
 ‘#’
 Set boxes plot style.
 ‘#~’
 Set boxerrorbars plot style.
 ‘#~>’
 Set boxxyerrorbars plot style.
Examples:
errorbar (x, y, ex, ">")
produces an xerrorbar plot of y versus x with x errorbars drawn from xex to x+ex.
errorbar (x, y1, ey, "~", x, y2, ly, uy)
produces yerrorbar plots with y1 and y2 versus x. Errorbars for y1 are drawn from y1ey to y1+ey, errorbars for y2 from y2ly to y2+uy.
errorbar (x, y, lx, ux, ly, uy, "~>")
produces an xyerrorbar plot of y versus x in which x errorbars are drawn from xlx to x+ux and y errorbars from yly to y+uy.
See also semilogxerr, semilogyerr, loglogerr
 Function File: semilogxerr (args)
 Produce twodimensional plots on a semilogarithm axis with errorbars.
Many different combinations of arguments are possible. The most used
form is
semilogxerr (x, y, ey, fmt)
which produces a semilogarithm plot of y versus x with errors in the yscale defined by ey and the plot format defined by fmt. See errorbar for available formats and additional information.
See also errorbar, loglogerr semilogyerr
 Function File: semilogyerr (args)
 Produce twodimensional plots on a semilogarithm axis with errorbars.
Many different combinations of arguments are possible. The most used
form is
semilogyerr (x, y, ey, fmt)
which produces a semilogarithm plot of y versus x with errors in the yscale defined by ey and the plot format defined by fmt. See errorbar for available formats and additional information.
See also errorbar, loglogerr semilogxerr
 Function File: loglogerr (args)
 Produce twodimensional plots on double logarithm axis with
errorbars. Many different combinations of arguments are possible.
The most used form is
loglogerr (x, y, ey, fmt)
which produces a double logarithm plot of y versus x with errors in the yscale defined by ey and the plot format defined by fmt. See errorbar for available formats and additional information.
See also errorbar, semilogxerr, semilogyerr
Finally, the polar
function allows you to easily plot data in
polar coordinates. However, the display coordinates remain rectangular
and linear. For example,
polar (0:0.1:10*pi, 0:0.1:10*pi);
produces the spiral plot shown in Figure 154.
 Function File: polar (theta, rho, fmt)
 Make a twodimensional plot given the polar coordinates theta and
rho.
The optional third argument specifies the line type.
See also plot
 Function File: pie (y)
 Function File: pie (y, explode)
 Function File: pie (..., labels)
 Function File: pie (h, ...);
 Function File: h = pie (...);
 Produce a pie chart.
Called with a single vector argument, produces a pie chart of the elements in x, with the size of the slice determined by percentage size of the values of x.
The variable explode is a vector of the same length as x that if non zero 'explodes' the slice from the pie chart.
If given labels is a cell array of strings of the same length as x, giving the labels of each of the slices of the pie chart.
The optional return value h provides a handle to the patch object.
See also bar, stem
 Function File: quiver (u, v)
 Function File: quiver (x, y, u, v)
 Function File: quiver (..., s)
 Function File: quiver (..., style)
 Function File: quiver (..., 'filled')
 Function File: quiver (h, ...)
 Function File: h = quiver (...)

Plot the
(u, v)
components of a vector field in an(x, y)
meshgrid. If the grid is uniform, you can specify x and y as vectors.If x and y are undefined they are assumed to be
(1:m, 1:n)
where[m, n] = size(u)
.The variable s is a scalar defining a scaling factor to use for the arrows of the field relative to the mesh spacing. A value of 0 disables all scaling. The default value is 1.
The style to use for the plot can be defined with a line style style in a similar manner to the line styles used with the
plot
command. If a marker is specified then markers at the grid points of the vectors are printed rather than arrows. If the argument 'filled' is given then the markers as filled.The optional return value h provides a list of handles to the parts of the vector field (body, arrow and marker).
[x, y] = meshgrid (1:2:20); quiver (x, y, sin (2*pi*x/10), sin (2*pi*y/10));
See also plot
 Function File: pcolor (x, y, c)
 Function File: pcolor (c)
 Density plot for given matrices x, and y from
meshgrid
and a matrix c corresponding to the x and y coordinates of the mesh. If x and y are vectors, then a typical vertex is (x(j), y(i), c(i,j)). Thus, columns of c correspond to different x values and rows of c correspond to different y values.See also meshgrid, contour
 Function File: area (x, y)
 Function File: area (x, y, lvl)
 Function File: area (..., prop, val, ...)
 Function File: area (y, ...)
 Function File: area (h, ...)
 Function File: h = area (...)
 Area plot of cumulative sum of the columns of y. This shows the
contributions of a value to a sum, and is functionally similar to
plot (x, cumsum (y, 2))
, except that the area under the curve is shaded.If the x argument is omitted it is assumed to be given by
1 : rows (y)
. A value lvl can be defined that determines where the base level of the shading under the curve should be defined.Additional arguments to the
area
function are passed to thepatch
. The optional return value h provides a handle to the list of patch objects.See also plot, patch
The axis function may be used to change the axis limits of an existing plot.
 Function File: axis (limits)
 Set axis limits for plots.
The argument limits should be a 2, 4, or 6 element vector. The first and second elements specify the lower and upper limits for the x axis. The third and fourth specify the limits for the y axis, and the fifth and sixth specify the limits for the z axis.
Without any arguments,
axis
turns autoscaling on.With one output argument,
x=axis
returns the current axesThe vector argument specifying limits is optional, and additional string arguments may be used to specify various axis properties. For example,
axis ([1, 2, 3, 4], "square");
forces a square aspect ratio, and
axis ("labely", "tic");
turns tic marks on for all axes and tic mark labels on for the yaxis only.
The following options control the aspect ratio of the axes.
"square"
 Force a square aspect ratio.
"equal"
 Force x distance to equal ydistance.
"normal"
 Restore the balance.
The following options control the way axis limits are interpreted.
"auto"
 Set the specified axes to have nice limits around the data or all if no axes are specified.
"manual"
 Fix the current axes limits.
"tight"
 Fix axes to the limits of the data (not implemented).
The option
"image"
is equivalent to"tight"
and"equal"
.The following options affect the appearance of tic marks.
"on"
 Turn tic marks and labels on for all axes.
"off"
 Turn tic marks off for all axes.
"tic[xyz]"
 Turn tic marks on for all axes, or turn them on for the specified axes and off for the remainder.
"label[xyz]"
 Turn tic labels on for all axes, or turn them on for the specified axes and off for the remainder.
"nolabel"
 Turn tic labels off for all axes.
Note, if there are no tic marks for an axis, there can be no labels.
The following options affect the direction of increasing values on the axes.
"ij"
 Reverse yaxis, so lower values are nearer the top.
"xy"
 Restore yaxis, so higher values are nearer the top.
If an axes handle is passed as the first argument, then operate on this axes rather than the current axes.
Similarly the axis limits of the colormap can be changed with the caxis function.
 Function File: caxis (limits)
 Function File: caxis (h, ...)
 Set color axis limits for plots.
The argument limits should be a 2 element vector specifying the lower and upper limits to assign to the first and last value in the colormap. Values outside this range are clamped to the first and last colormap entries.
If limits is 'auto', then automatic colormap scaling is applied, whereas if limits is 'manual' the colormap scaling is set to manual.
Called without any arguments to current color axis limits are returned.
If an axes handle is passed as the first argument, then operate on this axes rather than the current axes.
ISBN 095461206X  GNU Octave Manual Version 3  See the print edition 