Bird
Raised Fist0
MATLABdata~5 mins

Subplot for multiple panels in MATLAB

Choose your learning style10 modes available
Introduction

Subplots let you show many graphs in one window. This helps compare data easily.

You want to compare sales trends for different products side by side.
You need to show temperature changes over days for multiple cities in one figure.
You want to display different parts of a dataset in separate small graphs.
You are analyzing multiple experiments and want to see their results together.
Syntax
MATLAB
subplot(rows, columns, index)
plot(data)
title('Title')

rows and columns set how many panels in vertical and horizontal directions.

index picks which panel you are drawing in, counting left to right, top to bottom.

Examples
Creates a 2 by 2 grid and draws the first plot in the top-left panel.
MATLAB
subplot(2, 2, 1)
plot(x, y1)
title('Panel 1')
Creates 3 rows and 1 column, draws plot in the second panel (middle).
MATLAB
subplot(3, 1, 2)
plot(x, y2)
title('Middle Panel')
Creates 1 row and 3 columns, draws plot in the last panel on the right.
MATLAB
subplot(1, 3, 3)
plot(x, y3)
title('Right Panel')
Sample Program

This code creates one figure with three panels stacked vertically. Each panel shows a different function of x.

MATLAB
x = 1:10;
y1 = x;
y2 = x.^2;
y3 = sqrt(x);

figure;
subplot(3,1,1);
plot(x, y1);
title('Linear');

subplot(3,1,2);
plot(x, y2);
title('Square');

subplot(3,1,3);
plot(x, y3);
title('Square Root');
OutputSuccess
Important Notes

Use figure before subplot to start a new window.

You can customize each subplot with titles, labels, and legends separately.

Panels are counted left to right, top to bottom for the index.

Summary

Subplots help show multiple graphs in one figure for easy comparison.

Use subplot(rows, columns, index) to select the panel.

Each panel can have its own plot and title.

Practice

(1/5)
1. What does the MATLAB function subplot(2, 3, 4) do?
easy
A. Plots data in the 2nd row and 3rd column of a figure.
B. Creates a 2x3 matrix and fills it with the number 4.
C. Clears the 4th subplot in a 2 by 3 grid.
D. Divides the figure into 2 rows and 3 columns, then selects the 4th panel for plotting.

Solution

  1. Step 1: Understand subplot grid parameters

    The first two numbers (2, 3) define the grid size: 2 rows and 3 columns.
  2. Step 2: Identify the panel number

    The third number (4) selects the 4th panel in row-wise order for plotting.
  3. Final Answer:

    Divides the figure into 2 rows and 3 columns, then selects the 4th panel for plotting. -> Option D
  4. Quick Check:

    subplot(m, n, p) = grid m x n, panel p [OK]
Hint: Remember subplot(m,n,p) means m rows, n columns, p panel [OK]
Common Mistakes:
  • Confusing the order of rows and columns
  • Thinking subplot creates a matrix of numbers
  • Assuming subplot clears panels automatically
2. Which of the following is the correct syntax to create a 3x1 subplot and plot in the second panel?
easy
A. subplot(3, 1, 2); plot(x, y);
B. subplot(1, 3, 2); plot(x, y);
C. subplot(3, 2, 1); plot(x, y);
D. subplot(2, 3, 2); plot(x, y);

Solution

  1. Step 1: Identify the grid layout

    A 3x1 subplot means 3 rows and 1 column, so subplot(3, 1, p) is correct.
  2. Step 2: Select the second panel

    The third argument '2' selects the second panel in the vertical stack.
  3. Final Answer:

    subplot(3, 1, 2); plot(x, y); -> Option A
  4. Quick Check:

    3 rows, 1 column, panel 2 = subplot(3,1,2) [OK]
Hint: Rows first, then columns, then panel number [OK]
Common Mistakes:
  • Swapping rows and columns in subplot arguments
  • Using wrong panel number for desired position
  • Confusing subplot grid with plot commands
3. What will be the output of the following MATLAB code?
subplot(1,2,1); plot(1:3, [2 4 6]);
subplot(1,2,2); plot(1:3, [1 3 5]);
medium
A. Two plots side by side: first with points (1,2),(2,4),(3,6), second with (1,1),(2,3),(3,5).
B. One plot with both data sets overlaid.
C. Error because subplot indices are incorrect.
D. Two plots stacked vertically.

Solution

  1. Step 1: Understand subplot grid

    subplot(1,2,1) creates a grid with 1 row and 2 columns, selecting the first panel.
  2. Step 2: Plot data in each panel

    The first plot shows points (1,2), (2,4), (3,6). The second subplot(1,2,2) plots points (1,1), (2,3), (3,5).
  3. Final Answer:

    Two plots side by side: first with points (1,2),(2,4),(3,6), second with (1,1),(2,3),(3,5). -> Option A
  4. Quick Check:

    subplot(1,2,p) = two side-by-side plots [OK]
Hint: subplot(1,2,p) means two plots side by side [OK]
Common Mistakes:
  • Thinking plots overlay in one panel
  • Assuming vertical stacking instead of horizontal
  • Misreading subplot indices
4. Identify the error in this MATLAB code snippet:
subplot(2,2,5);
plot(rand(5));
medium
A. plot function cannot be used inside subplot.
B. Panel index 5 is invalid for a 2x2 grid.
C. Missing semicolon after subplot command.
D. rand(5) is incorrect syntax.

Solution

  1. Step 1: Check subplot grid size

    A 2x2 grid has only 4 panels numbered 1 to 4.
  2. Step 2: Validate panel index

    Using 5 as the panel index is invalid and causes an error.
  3. Final Answer:

    Panel index 5 is invalid for a 2x2 grid. -> Option B
  4. Quick Check:

    Panel number must be ≤ rows*columns [OK]
Hint: Panel number must not exceed total grid cells [OK]
Common Mistakes:
  • Using panel number larger than grid size
  • Thinking semicolon affects subplot indexing
  • Believing plot can't be inside subplot
5. You want to create a 2x2 grid of plots showing sine waves with different frequencies. Which code correctly sets up the subplots and plots the waves?
hard
A. subplot(2,2); for k = 1:4 plot(sin(k*x)); end
B. for k = 1:4 subplot(4,1,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end
C. for k = 1:4 subplot(2,2,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end
D. for k = 1:4 subplot(2,2,k+1); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end

Solution

  1. Step 1: Set up correct subplot grid

    subplot(2,2,k) correctly creates a 2x2 grid and selects each panel from 1 to 4.
  2. Step 2: Plot sine waves with increasing frequency

    Inside the loop, x is defined and sin(k*x) is plotted in each subplot panel.
  3. Step 3: Check other options for errors

    for k = 1:4 subplot(4,1,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end uses 4x1 grid, not 2x2. subplot(2,2); for k = 1:4 plot(sin(k*x)); end calls subplot once without panel index. for k = 1:4 subplot(2,2,k+1); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end uses k+1 which causes invalid panel 5.
  4. Final Answer:

    for k = 1:4 subplot(2,2,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end -> Option C
  5. Quick Check:

    Loop with subplot(2,2,k) plots 4 panels correctly [OK]
Hint: Use subplot(2,2,k) inside loop k=1 to 4 [OK]
Common Mistakes:
  • Using wrong subplot grid size
  • Not specifying panel index in subplot
  • Using invalid panel numbers
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard