Next: Three-Dimensional Plotting, Up: Plotting Basics
The plot
function allows you to create simple x-y plots with
linear axes. For example,
x = -10:0.1:10; plot (x, sin (x));
displays a sine wave shown in fig:plot. On most systems, this command will open a separate plot window to display the graph.
The function fplot
also generates two-dimensional plots with
linear axes using a function name and limits for the range of the
x-coordinate 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.
Produces two-dimensional 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
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 property-value 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 semi-colons after the formatting sequence described above, e.g. "+3;Key Title;" Note that the last semi-colon 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.
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.
Produce a two-dimensional 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.
Produce a two-dimensional 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.
Produce a two-dimensional 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 fig:hist.
Given two vectors of x-y data,
bar
produce a bar graph.If only one argument is given, it is taken as a vector of y-values and the x coordinates are taken to be the indices of the elements.
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 side-by-side. This behavior can be changed by the style argument, which can take the values 'group' (the default), or 'stack'.
If two output arguments are specified, the data are generated but not plotted. For example,
bar (x, y);and
[xb, yb] = bar (x, y); plot (xb, yb);are equivalent.
See also: hbar, plot.
Given two vectors of x-y data,
bar
produce a horizontal bar graph.If only one argument is given, it is taken as a vector of y-values and the x coordinates are taken to be the indices of the elements.
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 side-by-side. This behavior can be changed by the style argument, which can take the values 'group' (the default), or 'stack'.
If two output arguments are specified, the data are generated but not plotted. For example,
barh (x, y);and
[xb, yb] = barh (x, y); plot (xb, yb);are equivalent.
See also: bar, plot.
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.
Produce a stairstep plot. The arguments may be vectors or matrices.
If only one argument is given, it is taken as a vector of y-values 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.
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 2-by-10 array of handles in which the first row holds the line handles and the 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 2-by-10 array of handles in which the first row holds the line handles and the second rows 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 2-by-10 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 rgb-triple defined, the line style is
"-"
, the marker style is"o"
, and h is a 2-by-10 array of handles in which the first row holds the line handles and the second row holds the marker handles).Color definitions with rgb-triples are not valid!
See also: bar, barh, plot.
The contour
and contourc
functions produce two-dimensional
contour plots from three dimensional data.
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)See also: contourc, line, plot.
Compute isolines (countour 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.5000See also: contour.
The errorbar
, semilogxerr
, semilogyerr
, and
loglogerr
functions produces 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 fig:errorbar.
This function produces two-dimensional 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 x-ex 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 y1-ey to y1+ey, errorbars for y2 from y2-ly 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 x-lx to x+ux and y errorbars from y-ly to y+uy.
See also: semilogxerr, semilogyerr, loglogerr.
Produce two-dimensional 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 semi-logarithm plot of y versus x with errors in the y-scale defined by ey and the plot format defined by fmt. See errorbar for available formats and additional information.
See also: errorbar, loglogerr semilogyerr.
Produce two-dimensional 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 semi-logarithm plot of y versus x with errors in the y-scale defined by ey and the plot format defined by fmt. See errorbar for available formats and additional information.
See also: errorbar, loglogerr semilogxerr.
Produce two-dimensional 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 y-scale 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
polor 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 fig:polar.
Make a two-dimensional plot given polar the coordinates theta and rho.
The optional third argument specifies the line type.
See also: plot.
The axis function may be used to change the axis limits of an existing plot.
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 axes (this is not yet implemented for automatic axes).The 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 y-axis only.
The following options control the aspect ratio of the axes.
"square"
- Force a square aspect ratio.
"equal"
- Force x distance to equal y-distance.
"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.
Note, if there are no tic marks for an axis, there can be no labels.
"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.
The following options affect the direction of increasing values on the axes.
"ij"
- Reverse y-axis, so lower values are nearer the top.
"xy"
- Restore y-axis, so higher values are nearer the top.