📖 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
Step 1: Understand font properties
Font properties include size, weight, family, style, and color.
Step 2: Identify the property for thickness
The thickness or boldness of text is controlled by the 'weight' property.
Final Answer:
weight -> Option C
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
Step 1: Recall fontdict usage
In matplotlib, fontdict keys include 'size' for font size, not 'fontsize'.
Step 2: Check correct syntax
Using fontdict={'size':16} correctly sets font size to 16.
Final Answer:
plt.title('My Title', fontdict={'size':16}) -> Option B
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
Step 1: Analyze fontdict in xlabel
The fontdict sets 'size' to 20 and 'weight' to 'bold'.
Step 2: Understand effect on label
The label will use size 20 and bold weight as specified.
Final Answer:
20 -> Option A
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
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.
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.
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.
Final Answer:
'style' is not a valid font property key for legend prop -> Option D
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
Step 1: Check correct fontdict keys
Valid keys are 'family', 'size', 'weight', and 'color'. 'fontsize' and 'fontweight' are incorrect keys here.
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.
Final Answer:
plt.title('My Plot', fontdict={'family':'Comic Sans MS', 'size':18, 'weight':'bold', 'color':'blue'}) -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.