Bird
Raised Fist0
Matplotlibdata~20 mins

Figure size and DPI in Matplotlib - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Figure Size and DPI Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of figure size and DPI settings
What is the size in pixels of the figure created by this code?
Matplotlib
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4, 3), dpi=100)
width, height = fig.get_size_inches() * fig.dpi
print(int(width), int(height))
A400 300
B4 3
C100 75
D40 30
Attempts:
2 left
💡 Hint
Remember that figure size is in inches and DPI means dots per inch.
❓ data_output
intermediate
2:00remaining
DataFrame shape after resizing figure
Given this code, what is the shape of the DataFrame after plotting?
Matplotlib
import pandas as pd
import matplotlib.pyplot as plt

data = {'x': range(5), 'y': [10, 20, 15, 25, 30]}
df = pd.DataFrame(data)
fig, ax = plt.subplots(figsize=(6, 4), dpi=80)
df.plot(x='x', y='y', ax=ax)
print(df.shape)
A(5, 2)
B(6, 4)
C(80, 60)
D(4, 6)
Attempts:
2 left
💡 Hint
The DataFrame shape is independent of figure size.
❓ visualization
advanced
2:00remaining
Effect of DPI on saved image resolution
Which saved image will have the highest resolution (most pixels)?
Matplotlib
import matplotlib.pyplot as plt
fig1 = plt.figure(figsize=(5, 4), dpi=80)
fig1.savefig('image1.png')
fig2 = plt.figure(figsize=(5, 4), dpi=200)
fig2.savefig('image2.png')
Aimage1.png has higher resolution
BResolution depends only on figsize, not dpi
CBoth images have the same resolution
Dimage2.png has higher resolution
Attempts:
2 left
💡 Hint
DPI means dots per inch, so higher DPI means more pixels.
🧠 Conceptual
advanced
2:00remaining
Understanding figure size and DPI relationship
If you double the DPI but keep the figure size the same, what happens to the image?
AThe image becomes larger in inches
BThe image has more pixels and looks sharper
CThe image size and quality stay the same
DThe image becomes smaller in pixels
Attempts:
2 left
💡 Hint
Think about what DPI controls in an image.
🔧 Debug
expert
2:00remaining
Why does this saved figure look blurry?
This code saves a figure but the image looks blurry. What is the main cause?
Matplotlib
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(3, 2), dpi=50)
plt.plot([1, 2, 3], [4, 5, 6])
fig.savefig('blurry.png')
AThe plot command is missing labels
BThe figsize is too large, causing blur
CThe dpi is too low, causing low pixel resolution
DThe savefig filename is incorrect
Attempts:
2 left
💡 Hint
Low DPI means fewer pixels in the image.

Practice

(1/5)
1. What does the figsize parameter control in a matplotlib figure?
easy
A. The physical size of the figure in inches
B. The color of the figure background
C. The resolution of the figure in dots per inch
D. The font size of the plot labels

Solution

  1. Step 1: Understand the role of figsize

    The figsize parameter sets the width and height of the figure in inches.
  2. Step 2: Differentiate from DPI

    DPI controls resolution, not size. Color and font size are unrelated to figsize.
  3. Final Answer:

    The physical size of the figure in inches -> Option A
  4. Quick Check:

    Figure size = physical dimensions [OK]
Hint: Remember: figsize = inches size, DPI = sharpness [OK]
Common Mistakes:
  • Confusing DPI with figure size
  • Thinking figsize controls resolution
  • Mixing up color or font size with figsize
2. Which of the following is the correct way to create a matplotlib figure with size 8 inches wide and 4 inches tall?
easy
A. plt.figure(dpi=(8, 4))
B. plt.figure(size=(8, 4))
C. plt.figure(figsize=(8, 4))
D. plt.figure(shape=(8, 4))

Solution

  1. Step 1: Recall correct parameter name

    The parameter to set figure size is figsize, which takes a tuple (width, height).
  2. Step 2: Check syntax correctness

    Only plt.figure(figsize=(8, 4)) uses figsize correctly. Others use invalid parameter names.
  3. Final Answer:

    plt.figure(figsize=(8, 4)) -> Option C
  4. Quick Check:

    Use figsize=(width, height) [OK]
Hint: Use figsize=(width, height) tuple in plt.figure() [OK]
Common Mistakes:
  • Using wrong parameter names like size or shape
  • Passing DPI values instead of size
  • Not using a tuple for figsize
3. What will be the DPI of the figure created by this code?
fig = plt.figure(figsize=(6, 3), dpi=150)
medium
A. 100
B. 150
C. 6
D. 3

Solution

  1. Step 1: Identify the DPI parameter value

    The code explicitly sets dpi=150 when creating the figure.
  2. Step 2: Understand DPI meaning

    DPI means dots per inch, so the figure resolution is 150 dots per inch.
  3. Final Answer:

    150 -> Option B
  4. Quick Check:

    DPI parameter sets resolution [OK]
Hint: DPI is set by dpi= value in plt.figure() [OK]
Common Mistakes:
  • Confusing DPI with figure size
  • Choosing width or height as DPI
  • Assuming default DPI without checking code
4. Identify the error in this code snippet:
plt.figure(figsize=8, dpi=100)
medium
A. No error, code is correct
B. dpi must be a tuple, not an integer
C. plt.figure does not accept figsize parameter
D. figsize must be a tuple, not a single integer

Solution

  1. Step 1: Check the type of figsize argument

    figsize expects a tuple (width, height), but 8 is a single integer.
  2. Step 2: Verify dpi argument

    dpi accepts an integer, so dpi=100 is correct.
  3. Final Answer:

    figsize must be a tuple, not a single integer -> Option D
  4. Quick Check:

    figsize = (width, height) tuple [OK]
Hint: Always pass figsize as (width, height) tuple [OK]
Common Mistakes:
  • Passing single int instead of tuple to figsize
  • Thinking dpi needs a tuple
  • Assuming figsize can be a single number
5. You want to save a plot image that is 10 inches wide and 5 inches tall with a resolution of 300 DPI. Which code snippet correctly creates and saves this figure?
hard
A. fig = plt.figure(figsize=(10, 5)) plt.plot([1, 2, 3]) fig.savefig('plot.png', dpi=300)
B. fig = plt.figure(figsize=(10, 5), dpi=100) plt.plot([1, 2, 3]) fig.savefig('plot.png')
C. fig = plt.figure(dpi=300) plt.plot([1, 2, 3]) fig.savefig('plot.png', figsize=(10, 5))
D. fig = plt.figure(figsize=10, dpi=300) plt.plot([1, 2, 3]) fig.savefig('plot.png')

Solution

  1. Step 1: Understand figure creation and saving

    Setting figsize in plt.figure() controls size on screen, but saving with specific DPI requires passing dpi to savefig().
  2. Step 2: Analyze each option

    fig = plt.figure(figsize=(10, 5), dpi=100) plt.plot([1, 2, 3]) fig.savefig('plot.png') sets DPI in figure but saving uses default DPI, so output may differ. fig = plt.figure(figsize=(10, 5)) plt.plot([1, 2, 3]) fig.savefig('plot.png', dpi=300) sets size in figure and DPI in savefig, ensuring correct size and resolution. fig = plt.figure(dpi=300) plt.plot([1, 2, 3]) fig.savefig('plot.png', figsize=(10, 5)) wrongly passes figsize to savefig, which is invalid. fig = plt.figure(figsize=10, dpi=300) plt.plot([1, 2, 3]) fig.savefig('plot.png') passes single int to figsize, causing error.
  3. Final Answer:

    fig = plt.figure(figsize=(10, 5)) plt.plot([1, 2, 3]) fig.savefig('plot.png', dpi=300) -> Option A
  4. Quick Check:

    Set size in figure, DPI in savefig for correct output [OK]
Hint: Set figsize in figure, dpi in savefig to control size and resolution [OK]
Common Mistakes:
  • Setting dpi only in figure but not in savefig
  • Passing figsize to savefig instead of figure
  • Using single int instead of tuple for figsize
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