Bird
Raised Fist0
Matplotlibdata~10 mins

Percentage labels in Matplotlib - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add percentage labels to the pie chart.

Matplotlib
import matplotlib.pyplot as plt
sizes = [30, 45, 25]
labels = ['A', 'B', 'C']
plt.pie(sizes, labels=labels, autopct=[1])
plt.show()
Drag options to blanks, or click blank then click option'
A'%.1f%%'
B'%s%%'
C'%d%%'
D'%f%%'
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%d%%' which shows no decimal places.
Forgetting to include the percent sign '%%' in the format string.
2fill in blank
medium

Complete the code to display percentage labels with one decimal place on the pie chart.

Matplotlib
import matplotlib.pyplot as plt
sizes = [10, 20, 70]
labels = ['X', 'Y', 'Z']
plt.pie(sizes, labels=labels, autopct=[1])
plt.show()
Drag options to blanks, or click blank then click option'
A'%d%%'
B'%s%%'
C'%.2f%%'
D'%.1f%%'
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%d%%' which shows no decimals.
Using '%s%%' which is not a valid number format.
3fill in blank
hard

Fix the error in the code to correctly show percentage labels on the pie chart.

Matplotlib
import matplotlib.pyplot as plt
sizes = [40, 35, 25]
labels = ['Red', 'Blue', 'Green']
plt.pie(sizes, labels=labels, autopct=[1])
plt.show()
Drag options to blanks, or click blank then click option'
A'%.1f%%'
B'%1.f%%'
C'%.1f%'
D'%f%%'
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%1.f%%' which is invalid format.
Using '%.1f%' which misses escaping the percent sign.
4fill in blank
hard

Fill both blanks to create a pie chart with percentage labels showing two decimals and a shadow effect.

Matplotlib
import matplotlib.pyplot as plt
sizes = [50, 30, 20]
labels = ['Apple', 'Banana', 'Cherry']
plt.pie(sizes, labels=[1], autopct=[2], shadow=True)
plt.show()
Drag options to blanks, or click blank then click option'
Alabels
B['Apple', 'Banana', 'Cherry']
C'%.2f%%'
D'%.1f%%'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the variable name 'labels' instead of the list.
Using '%.1f%%' instead of '%.2f%%' for two decimals.
5fill in blank
hard

Fill all three blanks to create a pie chart with exploded slices, percentage labels with no decimals, and a start angle of 90 degrees.

Matplotlib
import matplotlib.pyplot as plt
sizes = [15, 25, 60]
labels = ['Cat', 'Dog', 'Rabbit']
explode = ([1], [2], [3])
plt.pie(sizes, labels=labels, autopct='%d%%', explode=explode, startangle=90)
plt.show()
Drag options to blanks, or click blank then click option'
A0.1
B0
C0.2
D0.3
Attempts:
3 left
💡 Hint
Common Mistakes
Using integers instead of floats for explode values.
Not matching the length of explode tuple to the number of slices.

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

  1. 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.
  2. Step 2: Compare with other parameters

    Other parameters like colors or title do not control percentage labels; only autopct does.
  3. Final Answer:

    It adds percentage labels to each slice of the pie chart. -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    plt.pie(data, autopct='%1.1f%%') -> Option C
  4. 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?
import matplotlib.pyplot as plt
sizes = [10, 20, 30]
plt.pie(sizes, autopct='%1.0f%%')
plt.show()
medium
A. 10%, 20%, 30%
B. 17%, 33%, 50%
C. 25%, 50%, 75%
D. 33%, 33%, 33%

Solution

  1. Step 1: Calculate total and percentages

    Total = 10 + 20 + 30 = 60. Percentages: 10/60=16.67%, 20/60=33.33%, 30/60=50%.
  2. Step 2: Apply autopct format '%1.0f%%'

    This rounds percentages to nearest whole number: 17%, 33%, 50%.
  3. Final Answer:

    17%, 33%, 50% -> Option B
  4. Quick Check:

    Rounded percentages = 17%, 33%, 50% [OK]
Hint: Sum slices, divide each, round with autopct [OK]
Common Mistakes:
  • Using raw values instead of percentages
  • Not rounding percentages correctly
  • Assuming equal slices without calculation
4. Identify the error in this code snippet that tries to add percentage labels to a pie chart:
import matplotlib.pyplot as plt
sizes = [40, 60]
plt.pie(sizes, autopct='%1.1f%')
plt.show()
medium
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

  1. 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.
  2. 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.
  3. Final Answer:

    The format string '%1.1f%' is missing an extra percent sign. -> Option A
  4. 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

  1. Step 1: Understand the requirement

    Show percentage labels only if slice percentage is greater than 20%, else show nothing.
  2. 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.
  3. Final Answer:

    lambda p: f'{p:.1f}%' if p > 20 else '' -> Option D
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard