contour - Contour plot of matrix

Example of contour function output

GUI Alternatives

To graph selected variables, use the Plot Selector in the Workspace Browser, or use the Figure Palette Plot Catalog. Manipulate graphs in plot edit mode with the Property Editor. For details, see "Plotting Tools — Interactive Plotting" in the MATLAB® Graphics documentation and "Creating Graphics from the Workspace Browser" in the MATLAB Desktop Tools and Development Environment documentation.

Syntax

contour(Z)
contour(Z,n)
contour(Z,v)
contour(X,Y,Z)
contour(X,Y,Z,n)
contour(X,Y,Z,v)
contour(...,LineSpec)
contour(ax,...)
[C,h] = contour(...)
[C,h] = contour('v6',...)

Description

A contour plot displays isolines of matrix Z. Label the contour lines using clabel.

contour(Z) draws a contour plot of matrix Z, where Z is interpreted as heights with respect to the x-y plane. Z must be at least a 2-by-2 matrix that contains at least two different values. The number of contour levels and the values of the contour levels are chosen automatically based on the minimum and maximum values of Z. The ranges of the x- and y-axis are [1:n] and [1:m], where [m,n] = size(Z).

contour(Z,n) draws a contour plot of matrix Z with n contour levels.

contour(Z,v) draws a contour plot of matrix Z with contour lines at the data values specified in vector v. The number of contour levels is equal to length(v). To draw a single contour of level i, use contour(Z,[i i]).

contour(X,Y,Z), contour(X,Y,Z,n), and contour(X,Y,Z,v) draw contour plots of Z. X and Y specify the x- and y-axis limits. When X and Y are matrices, they must be the same size as Z, in which case they specify a surface, as defined by the surf function. X and Y must be monotonically increasing.

If X or Y is irregularly spaced, contour calculates contours using a regularly spaced contour grid, and then transforms the data to X or Y.

contour(...,LineSpec) draws the contours using the line type and color specified by LineSpec. contour ignores marker symbols.

contour(ax,...) plots into axes ax instead of gca.

[C,h] = contour(...) returns a contour matrix, C, derived from the matrix returned by the low-level contourc function, and a handle, h, to a contourgroup object. clabel uses the contour matrix C to create the labels. (See descriptions of contourgroup properties.)

Backward Compatible Version

[C,h] = contour('v6',...) returns the contour matrix C (see contourc) and a vector of handles, h, to graphics objects. clabel uses the contour matrix C to create the labels. When called with the 'v6' flag, contour creates patch graphics objects, unless you specify a LineSpec, in which case contour creates line graphics objects. In this case, contour lines are not mapped to colors in the figure colormap, but are colored using the colors defined in the axes ColorOrder property. If you do not specify a LineSpec argument, the figure colormap (colormap) and the color limits (caxis) control the color of the contour lines (patch objects).

See Plot Objects and Backward Compatibility for more information.

Remarks

Use contourgroup object properties to control the contour plot appearance.

The following diagram illustrates the parent-child relationship in contour plots.

Examples

Contour Plot of a Function

To view a contour plot of the function

over the range -2 ≤ x ≤ 2, -2 ≤ y ≤ 3, create matrix Z using the statements

[X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);

Then, generate a contour plot of Z.

Smoothing Contour Data

Use interp2 to create smoother contours. Also set the contour label text BackgroundColor to a light yellow and the EdgeColor to light gray.

Z = peaks;
[C,h] = contour(interp2(Z,4));
text_handle = clabel(C,h);
set(text_handle,'BackgroundColor',[1 1 .6],...
    'Edgecolor',[.7 .7 .7])

Setting the Axis Limits on Contour Plots

Suppose, for example, your data represents a region that is 1000 meters in the x dimension and 3000 meters in the y dimension. Use the following statements to set the axis limits correctly:

Z = rand(24,36); % assume data is a 24-by-36 matrix
X = linspace(0,1000,size(Z,2));
Y = linspace(0,3000,size(Z,1));
[c,h] = contour(X,Y,Z);
axis equal tight % set the axes aspect ratio

See Also

contour3, contourc, contourf, contourslice

See Contourgroup Properties for property descriptions.

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS