Bird
Raised Fist0
Data Analysis Pythondata~20 mins

Figure and axes creation in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Figure and Axes Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
What is the output of this figure and axes creation code?
Consider the following Python code using matplotlib to create a figure and axes. What will be the type of the variable ax?
Data Analysis Python
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
print(type(ax))
A<class 'matplotlib.axes._subplots.AxesSubplot'>
B<class 'tuple'>
C<class 'list'>
D<class 'matplotlib.figure.Figure'>
Attempts:
2 left
💡 Hint
The plt.subplots() function returns a figure and axes object. The axes object is used to plot data.
❓ data_output
intermediate
1:30remaining
How many axes are created in this figure?
What is the number of axes created by the following code?
Data Analysis Python
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 3)
print(len(axs.flatten()))
A5
B3
C6
D2
Attempts:
2 left
💡 Hint
The plt.subplots(2, 3) creates a grid of 2 rows and 3 columns of axes.
🔧 Debug
advanced
2:00remaining
What error does this code raise?
Examine the code below. What error will it raise when run?
Data Analysis Python
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2)
ax.plot([1, 2, 3], [4, 5, 6])
AAttributeError: 'numpy.ndarray' object has no attribute 'plot'
BTypeError: 'int' object is not iterable
CValueError: x and y must have same first dimension
DNo error, plots successfully
Attempts:
2 left
💡 Hint
When plt.subplots(2) is called, ax is an array of axes, not a single axes.
❓ visualization
advanced
1:30remaining
Which option produces a figure with 4 subplots arranged in 2 rows and 2 columns?
Select the code snippet that creates a figure with 4 subplots arranged in 2 rows and 2 columns.
Afig, axs = plt.subplots(4, 1)
Bfig, axs = plt.subplots(2, 2)
Cfig, axs = plt.subplots(1, 4)
Dfig, axs = plt.subplots(3, 2)
Attempts:
2 left
💡 Hint
The first argument is number of rows, the second is number of columns.
🧠 Conceptual
expert
2:30remaining
What is the difference between fig.add_subplot() and plt.subplots()?
Choose the correct statement about the difference between fig.add_subplot() and plt.subplots() in matplotlib.
A<code>fig.add_subplot()</code> returns a figure object, while <code>plt.subplots()</code> returns only axes objects.
B<code>fig.add_subplot()</code> creates a new figure with multiple subplots, while <code>plt.subplots()</code> adds a subplot to an existing figure.
C<code>fig.add_subplot()</code> and <code>plt.subplots()</code> are identical and interchangeable.
D<code>fig.add_subplot()</code> adds a single subplot to an existing figure, while <code>plt.subplots()</code> creates a new figure and a grid of subplots.
Attempts:
2 left
💡 Hint
Think about whether a new figure is created or an existing figure is modified.

Practice

(1/5)
1. What does the plt.subplots() function return in matplotlib?
easy
A. A figure and one or more axes objects
B. Only a figure object
C. Only an axes object
D. A list of data points

Solution

  1. Step 1: Understand plt.subplots() purpose

    The function is designed to create a figure and axes together for plotting.
  2. Step 2: Check the return values

    It returns a tuple: the first is the figure, the second is the axes (single or array).
  3. Final Answer:

    A figure and one or more axes objects -> Option A
  4. Quick Check:

    plt.subplots() = (figure, axes) [OK]
Hint: Remember plt.subplots() returns figure and axes together [OK]
Common Mistakes:
  • Thinking it returns only figure or only axes
  • Confusing axes with data points
  • Assuming it returns a plot directly
2. Which of the following is the correct syntax to create a figure with 2 rows and 3 columns of axes using matplotlib?
easy
A. fig, axes = plt.subplots(rows=3, cols=2)
B. fig, axes = plt.subplots(2, 3)
C. fig, axes = plt.subplots(3, 2)
D. fig, axes = plt.subplots(2*3)

Solution

  1. Step 1: Recall plt.subplots() parameters

    The first argument is number of rows, the second is number of columns.
  2. Step 2: Match the correct order

    To create 2 rows and 3 columns, use plt.subplots(2, 3).
  3. Final Answer:

    fig, axes = plt.subplots(2, 3) -> Option B
  4. Quick Check:

    Rows first, columns second in plt.subplots() [OK]
Hint: Remember rows first, columns second in plt.subplots() [OK]
Common Mistakes:
  • Swapping rows and columns order
  • Using keyword arguments incorrectly
  • Passing a single number instead of two
3. What will be the shape of axes when running fig, axes = plt.subplots(2, 2)?
medium
A. A 2x2 numpy array of AxesSubplot objects
B. A list of 4 AxesSubplot objects
C. A single AxesSubplot object
D. A dictionary of axes objects

Solution

  1. Step 1: Understand axes structure for multiple subplots

    When more than one subplot is created, axes is a 2D array matching the grid shape.
  2. Step 2: Check the shape for 2 rows and 2 columns

    Axes will be a 2x2 numpy array of AxesSubplot objects.
  3. Final Answer:

    A 2x2 numpy array of AxesSubplot objects -> Option A
  4. Quick Check:

    Multiple subplots = axes array matching grid [OK]
Hint: Multiple subplots return axes array matching rows and columns [OK]
Common Mistakes:
  • Expecting a flat list instead of 2D array
  • Thinking axes is a single object always
  • Confusing axes with figure
4. Identify the error in this code snippet:
fig, ax = plt.subplots(2, 2)
ax.plot([1, 2, 3], [4, 5, 6])
medium
A. fig and ax are swapped in assignment
B. plt.subplots() cannot create 2x2 axes
C. ax is an array, so ax.plot() causes an error
D. The plot data lists have different lengths

Solution

  1. Step 1: Check the shape of ax from plt.subplots(2, 2)

    ax is a 2x2 array of axes, not a single axes object.
  2. Step 2: Understand why ax.plot() fails

    Calling plot() on an array causes an AttributeError because arrays don't have plot method.
  3. Final Answer:

    ax is an array, so ax.plot() causes an error -> Option C
  4. Quick Check:

    Array of axes needs indexing before plot() [OK]
Hint: Index axes array before plotting when multiple subplots exist [OK]
Common Mistakes:
  • Trying to plot on axes array directly
  • Assuming plt.subplots(2,2) returns single axes
  • Ignoring need to index axes for plotting
5. You want to create a figure with 3 subplots stacked vertically and set the figure size to 8 inches wide and 12 inches tall. Which code correctly does this?
hard
A. fig, axes = plt.subplots(1, 3, figsize=(12, 8))
B. fig, axes = plt.subplots(3, figsize=(8, 12))
C. fig, axes = plt.subplots(3, 1, size=(8, 12))
D. fig, axes = plt.subplots(3, 1, figsize=(8, 12))

Solution

  1. Step 1: Determine subplot layout for vertical stacking

    3 subplots stacked vertically means 3 rows and 1 column.
  2. Step 2: Set figure size correctly

    Use figsize=(width, height) with width=8 and height=12 inches.
  3. Final Answer:

    fig, axes = plt.subplots(3, 1, figsize=(8, 12)) -> Option D
  4. Quick Check:

    Rows=3, cols=1, figsize=(8,12) [OK]
Hint: Use figsize=(width, height) and rows, columns order [OK]
Common Mistakes:
  • Swapping rows and columns
  • Using wrong keyword 'size' instead of 'figsize'
  • Confusing width and height order
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