Bird
Raised Fist0
Matplotlibdata~20 mins

Font properties customization in Matplotlib - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Font Properties Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
What is the font size of the title in this plot?
Consider this matplotlib code that sets a title with a specific font size. What font size will the title text have?
Matplotlib
import matplotlib.pyplot as plt
plt.title('Sample Title', fontsize=18)
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
A12
B10
C18
D24
Attempts:
2 left
💡 Hint
Look at the fontsize argument inside plt.title.
❓ data_output
intermediate
1:30remaining
What font family is used in this text?
This code sets the font family of a label. What font family will the label text use?
Matplotlib
import matplotlib.pyplot as plt
plt.xlabel('X axis', fontfamily='serif')
plt.plot([1, 2], [3, 4])
plt.show()
Aserif
Bsans-serif
Ccursive
Dmonospace
Attempts:
2 left
💡 Hint
Check the fontfamily argument in plt.xlabel.
❓ visualization
advanced
2:00remaining
Which option produces a plot with bold and italic title text?
Given these four code snippets, which one will produce a plot with the title text both bold and italic?
Aplt.title('Title', fontweight='bold', fontstyle='normal')
Bplt.title('Title', fontweight='italic', fontstyle='bold')
Cplt.title('Title', fontweight='normal', fontstyle='bold')
Dplt.title('Title', fontweight='bold', fontstyle='italic')
Attempts:
2 left
💡 Hint
fontweight controls boldness, fontstyle controls italic style.
🔧 Debug
advanced
1:30remaining
Why does this code raise an error?
This code tries to set font properties but raises an error. What is the cause?
Matplotlib
import matplotlib.pyplot as plt
plt.xlabel('X axis', fontweight=700)
plt.show()
AThe code is correct and does not raise an error
Bplt.xlabel does not accept fontweight argument
Cfontweight should be set using plt.rcParams, not in xlabel
Dfontweight must be a string like 'bold', not an integer
Attempts:
2 left
💡 Hint
fontweight accepts both strings (like 'bold') and integers (like 700).
🚀 Application
expert
2:30remaining
How to set different font properties for x and y axis labels in one plot?
You want the x-axis label to be italic and size 14, and the y-axis label to be bold and size 18. Which code snippet achieves this?
A
plt.xlabel('X axis', fontstyle='italic', fontweight='bold', fontsize=14)
plt.ylabel('Y axis', fontstyle='italic', fontweight='bold', fontsize=18)
B
plt.xlabel('X axis', fontstyle='italic', fontsize=14)
plt.ylabel('Y axis', fontweight='bold', fontsize=18)
C
plt.xlabel('X axis', fontweight='bold', fontsize=18)
plt.ylabel('Y axis', fontstyle='italic', fontsize=14)
D
plt.xlabel('X axis', fontsize=14)
plt.ylabel('Y axis', fontsize=18)
Attempts:
2 left
💡 Hint
Check the fontstyle and fontweight parameters for each label separately.

Practice

(1/5)
1. Which font property controls the thickness of the text in a matplotlib plot?
easy
A. family
B. size
C. weight
D. color

Solution

  1. Step 1: Understand font properties

    Font properties include size, weight, family, style, and color.
  2. Step 2: Identify the property for thickness

    The thickness or boldness of text is controlled by the 'weight' property.
  3. Final Answer:

    weight -> Option C
  4. Quick Check:

    Font thickness = weight [OK]
Hint: Thickness means weight in font properties [OK]
Common Mistakes:
  • Confusing size with weight
  • Thinking color controls thickness
  • Mixing family with weight
2. Which of the following is the correct way to set the font size of a plot title to 16 using fontdict in matplotlib?
easy
A. plt.title('My Title', font={'fontsize':16})
B. plt.title('My Title', fontdict={'size':16})
C. plt.title('My Title', font={'size':16})
D. plt.title('My Title', fontdict={'fontsize':16})

Solution

  1. Step 1: Recall fontdict usage

    In matplotlib, fontdict keys include 'size' for font size, not 'fontsize'.
  2. Step 2: Check correct syntax

    Using fontdict={'size':16} correctly sets font size to 16.
  3. Final Answer:

    plt.title('My Title', fontdict={'size':16}) -> Option B
  4. Quick Check:

    fontdict uses 'size' key [OK]
Hint: Use 'size' key inside fontdict for font size [OK]
Common Mistakes:
  • Using 'fontsize' instead of 'size'
  • Using 'font' instead of 'fontdict'
  • Wrong dictionary key names
3. What will be the font size of the x-axis label in the following code?
import matplotlib.pyplot as plt
plt.xlabel('X Axis', fontdict={'size':20, 'weight':'bold'})
plt.show()
medium
A. 20
B. Bold but default size
C. Default size (usually 10)
D. Error due to wrong fontdict

Solution

  1. Step 1: Analyze fontdict in xlabel

    The fontdict sets 'size' to 20 and 'weight' to 'bold'.
  2. Step 2: Understand effect on label

    The label will use size 20 and bold weight as specified.
  3. Final Answer:

    20 -> Option A
  4. Quick Check:

    fontdict size = 20 [OK]
Hint: fontdict size sets label font size directly [OK]
Common Mistakes:
  • Assuming default size
  • Ignoring weight property
  • Thinking code causes error
4. Identify the error in this code snippet that tries to set the legend font to italic:
import matplotlib.pyplot as plt
plt.plot([1,2,3], label='Line')
plt.legend(prop={'style':'italic'})
plt.show()
medium
A. Missing plt.legend() call
B. No error, code runs fine
C. Incorrect label argument in plot
D. 'style' is not a valid font property key for legend prop

Solution

  1. Step 1: Check font property keys for legend

    Valid keys include 'size', 'weight', 'family', 'style', and 'color'. 'style' is valid but must be a recognized value.
  2. Step 2: Verify 'italic' usage

    'italic' is a valid style, so the key is correct. However, in matplotlib, 'style' should be set inside a FontProperties object or as a string, not directly in prop dict.
  3. Step 3: Identify actual error

    The error is that 'prop' expects a FontProperties object or a dictionary with correct keys, but 'style' key is not always recognized directly in prop dict in some matplotlib versions.
  4. Final Answer:

    'style' is not a valid font property key for legend prop -> Option D
  5. Quick Check:

    Legend prop keys must be valid font properties [OK]
Hint: Use FontProperties for complex font styles in legend [OK]
Common Mistakes:
  • Using wrong keys in prop dict
  • Forgetting to import FontProperties
  • Assuming all keys work directly
5. You want to create a plot with a title that uses a custom font family 'Comic Sans MS', size 18, bold weight, and blue color. Which code snippet correctly applies all these font properties?
hard
A. plt.title('My Plot', fontdict={'family':'Comic Sans MS', 'size':18, 'weight':'bold', 'color':'blue'})
B. plt.title('My Plot', fontdict={'fontfamily':'Comic Sans MS', 'fontsize':18, 'fontweight':'bold', 'fontcolor':'blue'})
C. plt.title('My Plot', font={'family':'Comic Sans MS', 'size':18, 'weight':'bold', 'color':'blue'})
D. plt.title('My Plot', fontdict={'family':'Comic Sans MS', 'fontsize':18, 'weight':'bold', 'color':'blue'})

Solution

  1. Step 1: Check correct fontdict keys

    Valid keys are 'family', 'size', 'weight', and 'color'. 'fontsize' and 'fontweight' are incorrect keys here.
  2. Step 2: Verify values and syntax

    plt.title('My Plot', fontdict={'family':'Comic Sans MS', 'size':18, 'weight':'bold', 'color':'blue'}) uses correct keys and values for family, size, weight, and color.
  3. Final Answer:

    plt.title('My Plot', fontdict={'family':'Comic Sans MS', 'size':18, 'weight':'bold', 'color':'blue'}) -> Option A
  4. Quick Check:

    Use 'family', 'size', 'weight', 'color' keys in fontdict [OK]
Hint: Use standard keys: family, size, weight, color in fontdict [OK]
Common Mistakes:
  • Using 'fontsize' instead of 'size'
  • Using 'fontcolor' instead of 'color'
  • Passing fontdict as 'font'
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