📖 Scenario: You work in a small bakery and want to show how much each type of pastry contributes to total sales. You want to create a pie chart that shows the percentage share of each pastry type.
🎯 Goal: Create a pie chart using matplotlib that displays the percentage labels for each pastry type's sales.
📋 What You'll Learn
Create a dictionary called pastry_sales with exact entries for pastry types and their sales numbers.
Create a variable called labels that holds the pastry names from the dictionary.
Create a variable called sizes that holds the sales numbers from the dictionary.
Use matplotlib.pyplot.pie to create a pie chart with percentage labels shown.
Print the pie chart to display it.
💡 Why This Matters
🌍 Real World
Pie charts with percentage labels are useful to show parts of a whole in sales reports, surveys, and business presentations.
💼 Career
Data analysts and business intelligence professionals often create pie charts to communicate data insights clearly to stakeholders.
Progress0 / 4 steps
1
Create the pastry sales data
Create a dictionary called pastry_sales with these exact entries: 'Croissant': 120, 'Muffin': 90, 'Danish': 60, 'Eclair': 30.
Matplotlib
Hint
Use curly braces {} to create the dictionary with the exact pastry names and sales numbers.
2
Extract labels and sizes
Create a list called labels that contains the keys from pastry_sales. Create a list called sizes that contains the values from pastry_sales.
Matplotlib
Hint
Use list() with pastry_sales.keys() and pastry_sales.values() to get the lists.
3
Create the pie chart with percentage labels
Import matplotlib.pyplot as plt. Use plt.pie with sizes and labels. Add the argument autopct='%1.1f%%' to show percentage labels on the pie slices.
Matplotlib
Hint
Use import matplotlib.pyplot as plt and then plt.pie() with the correct arguments.
4
Display the pie chart
Use plt.show() to display the pie chart.
Matplotlib
Hint
Call plt.show() to open the window with the pie chart.
Practice
(1/5)
1. What does the autopct parameter do in plt.pie() when creating a pie chart?
easy
A. It adds percentage labels to each slice of the pie chart.
B. It changes the colors of the pie slices.
C. It sets the title of the pie chart.
D. It adjusts the size of the pie chart.
Solution
Step 1: Understand the role of autopct in plt.pie()
The autopct parameter is used to display the percentage value on each slice of the pie chart.
Step 2: Compare with other parameters
Other parameters like colors or title do not control percentage labels; only autopct does.
Final Answer:
It adds percentage labels to each slice of the pie chart. -> Option A
Quick Check:
autopct = percentage labels [OK]
Hint: Remember autopct shows percentages on pie slices [OK]
Common Mistakes:
Confusing autopct with color or title parameters
Thinking autopct changes chart size
Ignoring autopct and missing percentage labels
2. Which of the following is the correct syntax to show percentages with one decimal place in a pie chart using plt.pie()?
easy
A. plt.pie(data, autopct='%.1f%')
B. plt.pie(data, autopct='%f1.1%')
C. plt.pie(data, autopct='%1.1f%%')
D. plt.pie(data, autopct='%1.f%%')
Solution
Step 1: Recall the format string for percentages
The correct format for one decimal place is '%1.1f%%' where '%1.1f' formats the float and '%%' prints the percent sign.
Step 2: Check each option's format
plt.pie(data, autopct='%1.1f%%') matches the correct format. Options A, B, and D have misplaced or missing percent signs or incorrect format specifiers.
Final Answer:
plt.pie(data, autopct='%1.1f%%') -> Option C
Quick Check:
Format string '%1.1f%%' = correct percentage format [OK]
Hint: Use '%1.1f%%' to show one decimal percent [OK]
Common Mistakes:
Forgetting to double the percent sign '%%'
Misplacing the decimal point in format
Using incorrect format specifiers like '%f1.1%'
3. What will be the output percentages shown on the pie chart slices for the following code?
A. The format string '%1.1f%' is missing an extra percent sign.
B. The sizes list should be a numpy array.
C. plt.show() is missing parentheses.
D. autopct should be set to True instead of a format string.
Solution
Step 1: Check the autopct format string
The format string '%1.1f%' is incorrect because a single '%' is interpreted as a format specifier start, so to print a percent sign, '%%' is needed.
Step 2: Verify other parts of the code
The sizes list can be a list, plt.show() has parentheses, and autopct expects a format string, not True.
Final Answer:
The format string '%1.1f%' is missing an extra percent sign. -> Option A
Quick Check:
Use '%%' to print percent sign in autopct [OK]
Hint: Double percent signs '%%' to show % in autopct [OK]
Common Mistakes:
Using single '%' instead of '%%' in format string
Thinking autopct accepts boolean True
Assuming list must be numpy array
5. You want to create a pie chart with slices labeled by percentage, but only show percentages for slices larger than 20%. Which autopct function below correctly implements this?
hard
A. lambda p: f'{p:.1f}%'
B. lambda p: f'{p:.1f}%' if p < 20 else ''
C. lambda p: f'{p:.0f}%' if p >= 20 else '0%'
D. lambda p: f'{p:.1f}%' if p > 20 else ''
Solution
Step 1: Understand the requirement
Show percentage labels only if slice percentage is greater than 20%, else show nothing.
Step 2: Analyze each lambda function
lambda p: f'{p:.1f}%' if p > 20 else '' returns formatted percentage if p > 20, else empty string. lambda p: f'{p:.1f}%' if p < 20 else '' does the opposite. lambda p: f'{p:.0f}%' if p >= 20 else '0%' shows '0%' for smaller slices, which is not desired. lambda p: f'{p:.1f}%' shows all percentages.
Final Answer:
lambda p: f'{p:.1f}%' if p > 20 else '' -> Option D
Quick Check:
Show label only if p > 20% = lambda p: f'{p:.1f}%' if p > 20 else '' [OK]
Hint: Use lambda with condition to filter percentages [OK]
Common Mistakes:
Showing percentages for all slices
Using wrong comparison operator (< instead of >)
Returning '0%' instead of empty string for small slices
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.