Contour plots help us see how values change over a 2D area using lines. They make it easy to understand patterns and shapes in data.
To visualize elevation on a map, like hills and valleys.
To show temperature changes across a surface.
To understand pressure or density variations in physics or engineering.
To explore how two variables affect a third one in experiments.
Syntax
MATLAB
contour(X, Y, Z)
contour(X, Y, Z, levels)
contour(X, Y, Z, 'LineWidth', value)
contour(X, Y, Z, 'LineColor', color)
X and Y are matrices or vectors defining grid points.
Z is a matrix of values at each (X, Y) point.
Examples
Basic contour plot showing curves of constant Z values.
MATLAB
x = 1:5;
y = 1:5;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;
contour(X, Y, Z);
Draw contour plot with exactly 10 contour lines.
MATLAB
contour(X, Y, Z, 10);
Make contour lines thicker for better visibility.
MATLAB
contour(X, Y, Z, 'LineWidth', 2);
Sample Program
This program creates a smooth contour plot of a Gaussian hill. It uses 15 contour lines and thicker lines for clarity. Labels and title help understand the plot.
MATLAB
x = linspace(-2, 2, 50);
y = linspace(-2, 2, 50);
[X, Y] = meshgrid(x, y);
Z = exp(-X.^2 - Y.^2);
contour(X, Y, Z, 15, 'LineWidth', 1.5);
title('Contour plot of Gaussian function');
xlabel('X axis');
ylabel('Y axis');
OutputSuccess
Important Notes
You can add labels on contour lines using clabel function after contour.
Use meshgrid to create grid points for X and Y.
Contour plots work best with smooth data for clear lines.
Summary
Contour plots show lines of equal values on a 2D grid.
Use contour with grid data X, Y and values Z.
You can control number of lines and line style for better visuals.
Practice
(1/5)
1. What does a contour plot in MATLAB primarily represent?
easy
A. A 3D surface plot
B. Lines connecting points with the same value
C. A bar chart of values
D. A scatter plot of points
Solution
Step 1: Understand contour plot purpose
A contour plot shows curves that connect points with equal values on a grid.
Step 2: Compare with other plot types
3D surface plots show height as a surface, bar charts show bars, scatter plots show points, so they differ.
Final Answer:
Lines connecting points with the same value -> Option B
Quick Check:
Contour plot = lines of equal value [OK]
Hint: Contour plots connect equal values with lines [OK]
Common Mistakes:
Confusing contour plots with 3D surface plots
Thinking contour plots show individual points
Mixing contour plots with bar charts
2. Which of the following is the correct syntax to create a basic contour plot in MATLAB using matrices X, Y, and Z?
easy
A. contour(X, Y, Z)
B. plot(X, Y, Z)
C. contourplot(X, Y, Z)
D. surface(X, Y, Z)
Solution
Step 1: Recall MATLAB contour syntax
The function to create contour plots is contour(X, Y, Z).
Step 2: Eliminate incorrect functions
plot() is for 2D plots, contourplot() is not a MATLAB function, surface() creates 3D surfaces.
Final Answer:
contour(X, Y, Z) -> Option A
Quick Check:
Use contour() for contour plots [OK]
Hint: Use contour(X,Y,Z) to plot contours [OK]
Common Mistakes:
Using plot() instead of contour()
Typing contourplot() which is invalid
Using surface() which makes 3D plots
3. What will be the output of the following MATLAB code?
X = 1:3; Y = 1:3; [Xg,Yg] = meshgrid(X,Y); Z = Xg.^2 + Yg.^2; contour(Xg, Yg, Z, 3);
medium
A. An error because contour needs vectors, not matrices
B. A 3D surface plot of Z values
C. A scatter plot of points (Xg, Yg, Z)
D. A contour plot with 3 contour lines representing levels of Z
Solution
Step 1: Understand meshgrid and Z calculation
meshgrid creates grids Xg and Yg; Z is sum of squares, a smooth surface.
Step 2: Interpret contour call with 3 levels
contour with 3 as last argument draws 3 contour lines at different Z levels.
Final Answer:
A contour plot with 3 contour lines representing levels of Z -> Option D
Quick Check:
contour with level count = contour lines count [OK]
Hint: Last argument in contour sets number of lines [OK]
Common Mistakes:
Thinking contour creates 3D surface plots
Believing contour requires vectors, not matrices
Confusing contour with scatter plots
4. Identify the error in this MATLAB code snippet for contour plotting:
X = 1:5; Y = 1:5; Z = X + Y; contour(X, Y, Z);
medium
A. contour requires only two arguments
B. X and Y must be matrices, not vectors
C. Z must be a matrix matching grid size, not a vector
D. No error, code runs fine
Solution
Step 1: Check dimensions of X, Y, Z
X and Y are vectors; Z is vector sum, not a matrix grid.
Step 2: Understand contour input requirements
contour needs Z as matrix matching X, Y grid sizes; here Z is vector, causing error.
Final Answer:
Z must be a matrix matching grid size, not a vector -> Option C
Quick Check:
Z size mismatch causes error [OK]
Hint: Z must be matrix matching X,Y grid for contour [OK]
Common Mistakes:
Passing vector Z instead of matrix
Assuming contour accepts vector inputs
Ignoring dimension mismatch errors
5. You want to plot contour lines only at specific Z values: 5, 10, and 15. Which MATLAB command correctly achieves this given matrices X, Y, and Z?
hard
A. contour(X, Y, Z, [5 10 15])
B. contour(X, Y, Z, 3)
C. contour(X, Y, Z, 'Levels', [5 10 15])
D. contour(X, Y, Z, 'LineLevels', [5 10 15])
Solution
Step 1: Recall contour level specification syntax
To specify exact contour levels, pass a vector of levels as the fourth argument.
Step 2: Evaluate options for specifying levels
contour(X, Y, Z, [5 10 15]) uses vector [5 10 15] correctly; contour(X, Y, Z, 3) sets number of lines, not levels; options C and D use invalid syntax.
Final Answer:
contour(X, Y, Z, [5 10 15]) -> Option A
Quick Check:
Use vector of levels as 4th argument [OK]
Hint: Pass vector of levels as 4th argument to contour [OK]
Common Mistakes:
Using number instead of vector for levels
Trying unsupported name-value pairs
Confusing level count with specific levels
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.