What is the purpose of a legend in a matplotlib plot?
A legend explains what different colors, lines, or markers in the plot represent. It helps the viewer understand the data easily.
Click to reveal answer
intermediate
How do you place a legend outside the plot area in matplotlib?
Use the loc parameter with values like 'upper left' and the bbox_to_anchor parameter to position the legend outside the plot. For example, plt.legend(loc='upper left', bbox_to_anchor=(1, 1)) places it to the right outside the plot.
Click to reveal answer
beginner
What does the frameon parameter do in matplotlib legends?
The frameon parameter controls whether the legend has a border box around it. Setting frameon=False removes the box, making the legend look cleaner.
Click to reveal answer
beginner
How can you change the font size of legend text in matplotlib?
Use the fontsize parameter inside plt.legend(). For example, plt.legend(fontsize='small') or plt.legend(fontsize=12) changes the text size.
Click to reveal answer
intermediate
What is the effect of the ncol parameter in matplotlib legends?
The ncol parameter sets how many columns the legend entries are arranged into. For example, ncol=2 arranges legend items in two columns, which can save vertical space.
Click to reveal answer
Which parameter controls the position of the legend inside or outside the plot area?
Ancol
Bloc
Cframeon
Dfontsize
✗ Incorrect
The loc parameter sets the legend's position, such as 'upper right' or 'lower left'.
How do you remove the border box around a legend in matplotlib?
ASet <code>frameon=False</code>
BSet <code>frameon=True</code>
CSet <code>fontsize=0</code>
DSet <code>loc='none'</code>
✗ Incorrect
Setting frameon=False removes the border box around the legend.
What does bbox_to_anchor=(1,1) do when used with loc='upper left'?
APlaces legend inside the plot at top-left
BCenters the legend in the plot
CPlaces legend outside the plot to the right at top
DRemoves the legend
✗ Incorrect
It places the legend outside the plot area to the right, aligned at the top.
Which parameter changes the number of columns in a legend?
Ancol
Bfontsize
Cloc
Dframeon
✗ Incorrect
The ncol parameter sets how many columns the legend uses.
How can you make legend text smaller in matplotlib?
ASet <code>ncol=2</code>
BSet <code>frameon=False</code>
CSet <code>loc='lower right'</code>
DSet <code>fontsize='small'</code>
✗ Incorrect
Using fontsize='small' or a smaller numeric value reduces the legend text size.
Explain how to place a legend outside the plot area and style it with no border and smaller font.
Think about loc, bbox_to_anchor, frameon, and fontsize parameters.
You got /3 concepts.
Describe how to arrange legend items in two columns and why you might want to do that.
Focus on legend layout and space management.
You got /3 concepts.
Practice
(1/5)
1. What does the loc parameter control in a matplotlib legend?
easy
A. The type of plot line used
B. The color of the legend text
C. The size of the plot markers
D. The position of the legend on the plot
Solution
Step 1: Understand the role of loc in legend
The loc parameter specifies where the legend appears on the plot, such as 'upper right' or 'lower left'.
Step 2: Differentiate from other styling options
Other options control color, size, or line style, but loc only controls position.
Final Answer:
The position of the legend on the plot -> Option D
Quick Check:
Legend position = loc [OK]
Hint: Remember: loc means location of legend [OK]
Common Mistakes:
Confusing loc with color or font size
Thinking loc changes plot markers
Assuming loc controls line style
2. Which of the following is the correct syntax to place a legend at the lower left corner in matplotlib?
easy
A. plt.legend(loc='lower left')
B. plt.legend(location='lower left')
C. plt.legend(loc='lower_left')
D. plt.legend(position='lower left')
Solution
Step 1: Identify the correct parameter name
The correct parameter to set legend position is loc, not location or position.
Step 2: Use the correct string value
The valid string is 'lower left' with a space, not 'lower_left' with underscore.
Final Answer:
plt.legend(loc='lower left') -> Option A
Quick Check:
Correct syntax uses loc='lower left' [OK]
Hint: Use loc='lower left' exactly, no underscores [OK]
A. Code will raise an error due to invalid fontsize
B. Legend appears at the top center with a shadow and small font
C. Legend appears inside the plot area without shadow
D. Legend appears at the bottom right with default font size
Solution
Step 1: Analyze legend parameters
The loc='upper center' places the legend at the top center. shadow=True adds a shadow behind the legend box. fontsize='small' sets the font size smaller than default.
Step 2: Confirm no errors in parameters
All parameters are valid and supported by matplotlib.
Final Answer:
Legend appears at the top center with a shadow and small font -> Option B
Quick Check:
loc + shadow + fontsize = top center, shadow, small font [OK]
Hint: Check loc for position, shadow=True adds shadow, fontsize sets text size [OK]
Common Mistakes:
Assuming fontsize='small' causes error
Confusing loc='upper center' with bottom right
Ignoring shadow parameter effect
4. Identify the error in this code snippet for legend placement:
C. The loc value 'bottomright' is invalid; should be 'lower right'
D. plt.show() is missing parentheses
Solution
Step 1: Check the loc parameter value
The valid location string is 'lower right', not 'bottomright'. 'bottomright' is not recognized by matplotlib.
Step 2: Verify other parts of the code
Labels are correctly set, plt.legend() can be called after plotting, and plt.show() has parentheses.
Final Answer:
The loc value 'bottomright' is invalid; should be 'lower right' -> Option C
Quick Check:
Valid loc strings = 'lower right' not 'bottomright' [OK]
Hint: Use exact loc strings like 'lower right', not 'bottomright' [OK]
Common Mistakes:
Using invalid loc strings
Thinking plt.legend() must come before plt.plot()
Forgetting parentheses in plt.show()
5. You want to place a legend outside the plot on the right side with a title 'Legend', font size 12, and a shadow. Which code snippet achieves this correctly?
hard
A. plt.legend(loc='center right', bbox_to_anchor=(1, 0.5), title='Legend', fontsize='12pt', shadow=True)
B. plt.legend(loc='right side', bbox_to_anchor=(1, 0.5), title='Legend', fontsize=12, shadow=True)
C. plt.legend(loc='center left', bbox_to_anchor=(1, 0.5), title='Legend', fontsize=12, shadow=True)
D. plt.legend(loc='outside right', bbox_to_anchor=(1, 0.5), title='Legend', fontsize=12, shadow=True)
Solution
Step 1: Understand placing legend outside plot
Using loc='center right' with bbox_to_anchor=(1, 0.5) places the legend outside on the right side centered vertically.
Step 2: Check styling parameters
Title 'Legend', font size 12 (string with units '12pt'), and shadow=True are correctly set. loc='right side' and loc='outside right' are invalid.
Final Answer:
plt.legend(loc='center right', bbox_to_anchor=(1, 0.5), title='Legend', fontsize='12pt', shadow=True) -> Option A
Quick Check:
loc + bbox_to_anchor + title + fontsize + shadow = correct legend outside right [OK]
Hint: Use loc='center right' with bbox_to_anchor=(1, 0.5) for outside right legend [OK]
Common Mistakes:
Using invalid loc like 'right side' or 'outside right'
Passing fontsize as integer without units
Forgetting bbox_to_anchor for outside placement
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.