Bird
Raised Fist0
Matplotlibdata~30 mins

Font properties customization in Matplotlib - Mini Project: Build & Apply

Choose your learning style10 modes available
Font properties customization
📖 Scenario: Imagine you are creating a simple chart to show sales data for a small shop. You want to make the chart easy to read by changing the font style and size of the title and labels.
🎯 Goal: You will create a bar chart and customize the font properties of the title and axis labels using matplotlib.
📋 What You'll Learn
Create a bar chart with sales data
Customize the font size and font family of the chart title
Customize the font size and font style of the x-axis and y-axis labels
Display the chart with the customized fonts
💡 Why This Matters
🌍 Real World
Customizing font properties helps make charts clearer and more attractive for reports and presentations.
💼 Career
Data scientists and analysts often need to create visualizations that communicate data effectively, including styling text for readability.
Progress0 / 4 steps
1
Create sales data dictionary
Create a dictionary called sales with these exact entries: 'Apples': 30, 'Bananas': 45, 'Cherries': 15, 'Dates': 10.
Matplotlib
Hint

Use curly braces {} to create a dictionary with keys as fruit names and values as sales numbers.

2
Set font properties for title and labels
Create two variables: title_font as a dictionary with 'fontsize' set to 16 and 'fontfamily' set to 'serif', and label_font as a dictionary with 'fontsize' set to 12 and 'fontstyle' set to 'italic'.
Matplotlib
Hint

Use dictionaries to store font properties like fontsize, fontfamily, and fontstyle.

3
Create bar chart with customized fonts
Import matplotlib.pyplot as plt. Use plt.bar() to create a bar chart from sales.keys() and sales.values(). Use plt.title() with text 'Fruit Sales' and font properties from title_font. Use plt.xlabel() with text 'Fruit' and font properties from label_font. Use plt.ylabel() with text 'Quantity' and font properties from label_font.
Matplotlib
Hint

Use fontdict parameter in plt.title(), plt.xlabel(), and plt.ylabel() to apply font properties.

4
Display the chart
Use plt.show() to display the bar chart with the customized font properties.
Matplotlib
Hint

Call plt.show() to open a window showing the chart.

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