Bird
Raised Fist0
Matplotlibdata~10 mins

Subplot spacing adjustment in Matplotlib - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Subplot spacing adjustment
Create figure and subplots
↓
Plot data on each subplot
↓
Adjust spacing parameters
↓
Render figure with new spacing
↓
Display or save figure
This flow shows creating subplots, plotting data, adjusting spacing between them, and then displaying the figure.
Execution Sample
Matplotlib
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(hspace=0.5, wspace=0.3)
axs[0,0].plot([1,2,3], [1,4,9])
plt.show()
Creates a 2x2 grid of plots, adjusts vertical and horizontal spacing, plots data on top-left subplot, then shows the figure.
Execution Table
StepActionParameter ChangedValueEffect on Layout
1Create figure and 2x2 subplotsNoneNone4 subplots arranged in 2 rows and 2 columns with default spacing
2Adjust vertical spacing (hspace)hspace0.5Increases vertical space between rows
3Adjust horizontal spacing (wspace)wspace0.3Increases horizontal space between columns
4Plot data on axs[0,0]NoneNoneData plotted on top-left subplot
5Render and display figureNoneNoneFigure shown with adjusted subplot spacing
💡 All steps complete, figure displayed with new subplot spacing
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
figNoneFigure with 4 subplotsFigure with adjusted hspace=0.5Figure with adjusted wspace=0.3Final figure ready to display
axsNone2x2 array of Axes objectsUnchangedUnchangedUnchanged
Key Moments - 2 Insights
Why do we need to call fig.subplots_adjust after creating subplots?
Because default subplot spacing can be too tight, fig.subplots_adjust lets us increase space between plots to avoid overlap, as shown in steps 2 and 3 in the execution_table.
What happens if we set hspace or wspace to 0?
Subplots will have no space between rows or columns, causing axes labels or titles to overlap, which is why positive values like 0.5 or 0.3 are used in steps 2 and 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of wspace after step 3?
A0.5
BDefault (usually 0.2)
C0.3
D1.0
💡 Hint
Check the 'Parameter Changed' and 'Value' columns at step 3 in execution_table.
At which step is data plotted on the top-left subplot?
AStep 4
BStep 2
CStep 1
DStep 5
💡 Hint
Look at the 'Action' column in execution_table for when plotting occurs.
If we set hspace to 0, how would the layout effect change compared to step 2?
AMore vertical space between rows
BNo vertical space between rows
CMore horizontal space between columns
DNo horizontal space between columns
💡 Hint
Refer to the 'Effect on Layout' column for hspace in execution_table step 2.
Concept Snapshot
Subplot spacing adjustment:
- Use fig.subplots_adjust(hspace=val, wspace=val)
- hspace controls vertical space between rows
- wspace controls horizontal space between columns
- Default spacing may cause overlap
- Adjust before plt.show() to see effect
Full Transcript
This visual execution shows how to adjust spacing between subplots in matplotlib. First, we create a figure with a 2x2 grid of subplots. Then, we increase vertical spacing using hspace=0.5 and horizontal spacing using wspace=0.3 with fig.subplots_adjust. Next, we plot data on the top-left subplot. Finally, we render and display the figure with the new spacing. Adjusting subplot spacing helps prevent overlapping labels and makes the figure clearer.

Practice

(1/5)
1. What does the plt.subplots_adjust() function do in matplotlib?
easy
A. It changes the space between subplots in a figure.
B. It creates new subplots in a figure.
C. It saves the figure to a file.
D. It changes the color of the plot lines.

Solution

  1. Step 1: Understand the purpose of plt.subplots_adjust()

    This function is used to control the spacing between subplots in a matplotlib figure.
  2. Step 2: Compare options

    Only It changes the space between subplots in a figure. correctly describes adjusting space between subplots. Other options describe different functions.
  3. Final Answer:

    It changes the space between subplots in a figure. -> Option A
  4. Quick Check:

    Subplot spacing adjustment = plt.subplots_adjust() [OK]
Hint: Remember: adjust spacing, not create or save plots [OK]
Common Mistakes:
  • Confusing subplot creation with spacing adjustment
  • Thinking it saves the figure
  • Mixing it with styling functions
2. Which of the following is the correct syntax to increase horizontal space between subplots using plt.subplots_adjust()?
easy
A. plt.subplots_adjust(hspace=0.5)
B. plt.subplots_adjust(space=0.5)
C. plt.subplots_adjust(wspace=0.5)
D. plt.subplots_adjust(widthspace=0.5)

Solution

  1. Step 1: Identify parameter for horizontal spacing

    The parameter wspace controls horizontal space between subplots.
  2. Step 2: Check syntax correctness

    plt.subplots_adjust(wspace=0.5) uses wspace=0.5, which is correct. Other options use incorrect or non-existent parameters.
  3. Final Answer:

    plt.subplots_adjust(wspace=0.5) -> Option C
  4. Quick Check:

    wspace adjusts horizontal space [OK]
Hint: Use wspace for width (horizontal), hspace for height (vertical) [OK]
Common Mistakes:
  • Using hspace instead of wspace for horizontal spacing
  • Using wrong parameter names like space or widthspace
  • Syntax errors in function call
3. What will be the effect of this code on subplot spacing?
import matplotlib.pyplot as plt
fig, axs = plt.subplots(1, 2)
plt.subplots_adjust(wspace=1.0)
plt.show()
medium
A. Subplots will have increased horizontal space between them.
B. Subplots will be very close horizontally with almost no space.
C. Subplots will overlap each other.
D. Subplots will have increased vertical space between them.

Solution

  1. Step 1: Understand wspace=1.0 effect

    Setting wspace to 1.0 increases horizontal space between subplots significantly.
  2. Step 2: Analyze code behavior

    Since there are 2 subplots side by side, they will be spaced apart horizontally, not vertically.
  3. Final Answer:

    Subplots will have increased horizontal space between them. -> Option A
  4. Quick Check:

    wspace=1.0 means more horizontal space [OK]
Hint: wspace controls horizontal gap size between subplots [OK]
Common Mistakes:
  • Confusing wspace with hspace
  • Expecting subplots to overlap
  • Thinking spacing affects vertical gap
4. Identify the error in this code that tries to adjust subplot spacing:
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 1)
plt.subplots_adjust(wspace=0.3, hspace=0.5)
plt.show()
medium
A. Using hspace with vertical subplots is invalid.
B. Using wspace when subplots are stacked vertically.
C. Incorrect number of subplots created.
D. Missing plt.show() call.

Solution

  1. Step 1: Analyze subplot layout

    The code creates 2 subplots stacked vertically (2 rows, 1 column).
  2. Step 2: Check spacing parameters

    wspace controls horizontal spacing, which is irrelevant here because subplots are vertical. Only hspace affects vertical spacing.
  3. Final Answer:

    Using wspace when subplots are stacked vertically. -> Option B
  4. Quick Check:

    wspace for horizontal, not vertical spacing [OK]
Hint: Match wspace to horizontal, hspace to vertical layout [OK]
Common Mistakes:
  • Using wspace for vertical subplot spacing
  • Ignoring subplot grid shape
  • Assuming hspace is invalid for vertical layout
5. You have a 2x2 grid of subplots with overlapping x-axis labels. Which plt.subplots_adjust() call best reduces overlap by increasing vertical space and adding some horizontal space?
hard
A. plt.subplots_adjust(wspace=1.5, hspace=0.0)
B. plt.subplots_adjust(wspace=0.0, hspace=0.0)
C. plt.subplots_adjust(wspace=0.0, hspace=1.5)
D. plt.subplots_adjust(wspace=0.4, hspace=0.6)

Solution

  1. Step 1: Understand the problem of overlapping x-axis labels

    Overlapping x-axis labels usually happen vertically between rows, so increasing vertical space (hspace) helps.
  2. Step 2: Consider horizontal space

    Adding some horizontal space (wspace) also improves readability between columns.
  3. Step 3: Evaluate options

    plt.subplots_adjust(wspace=0.4, hspace=0.6) increases both wspace and hspace moderately, which best reduces overlap without wasting space.
  4. Final Answer:

    plt.subplots_adjust(wspace=0.4, hspace=0.6) -> Option D
  5. Quick Check:

    Increase hspace and wspace moderately to reduce overlap [OK]
Hint: Increase hspace for vertical gaps, wspace for horizontal gaps [OK]
Common Mistakes:
  • Setting spacing to zero causing overlap
  • Increasing only one spacing dimension
  • Using too large spacing causing wasted space
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