Bird
Raised Fist0
Matplotlibdata~5 mins

Custom legend entries in Matplotlib - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of creating custom legend entries in matplotlib?
Custom legend entries allow you to add specific labels and symbols to the legend that may not directly correspond to plotted data, helping to explain or highlight important information clearly.
Click to reveal answer
beginner
Which matplotlib class is commonly used to create custom legend handles?
The <code>matplotlib.patches.Patch</code> class is often used to create custom legend handles with specific colors and labels.
Click to reveal answer
intermediate
How do you add a custom legend entry without plotting a new line or marker?
You create a custom handle (like a Patch or Line2D object) and pass it along with a label to the legend() function using the handles and labels parameters.
Click to reveal answer
intermediate
What is the role of Line2D in custom legend entries?
Line2D can be used to create custom line or marker styles for legend entries, especially when you want to show a line or marker that is not part of the plotted data.
Click to reveal answer
beginner
True or False: Custom legend entries can only represent colors, not shapes or line styles.
False. Custom legend entries can represent colors, shapes, line styles, and markers by using appropriate matplotlib objects like Patch or Line2D.
Click to reveal answer
Which parameter do you use to specify custom legend handles in matplotlib?
Amarkers
Blabels
Ccolors
Dhandles
What matplotlib object would you use to create a colored box for a custom legend entry?
APatch
BLine2D
CFigure
DAxes
If you want to add a custom legend entry showing a dashed line, which object is best to use?
APatch
BText
CLine2D
DScatter
Can you add a legend entry that does not correspond to any plotted data?
ANo, legend entries must match plotted data
BYes, by creating custom handles
COnly if you plot invisible data
DOnly with special matplotlib plugins
Which function is used to display the legend in matplotlib?
Aplt.legend()
Bplt.plot()
Cplt.show()
Dplt.title()
Explain how to create and add a custom legend entry in matplotlib without plotting new data.
Think about creating a shape or line object and passing it to legend.
You got /3 concepts.
    Describe the difference between using Patch and Line2D for custom legend entries.
    Consider what visual element you want to show in the legend.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating custom legend entries in matplotlib?
      easy
      A. To change the plot background color
      B. To increase the plot size
      C. To add labels for plot elements that are not automatically labeled
      D. To save the plot as an image file

      Solution

      1. Step 1: Understand legend purpose

        Legends explain what different plot elements represent.
      2. Step 2: Identify custom legend role

        Custom legend entries add labels for elements not labeled automatically.
      3. Final Answer:

        To add labels for plot elements that are not automatically labeled -> Option C
      4. Quick Check:

        Custom legend entries = add labels [OK]
      Hint: Custom legends label unlabeled plot parts quickly [OK]
      Common Mistakes:
      • Confusing legend with plot size or color
      • Thinking legend changes plot background
      • Assuming legend saves the plot
      2. Which of the following is the correct way to create a custom legend entry for a red line using matplotlib.lines.Line2D?
      easy
      A. Line2D([0], [0], color='red', label='Red Line')
      B. Line2D(color='red', label='Red Line')
      C. Line2D([0,1], [0,1], color='red')
      D. Line2D([0], [0], 'red', label='Red Line')

      Solution

      1. Step 1: Check Line2D constructor

        Line2D requires x and y data points as first two arguments.
      2. Step 2: Verify correct syntax

        Line2D([0], [0], color='red', label='Red Line') uses [0], [0] for points, color='red', and label='Red Line' correctly.
      3. Final Answer:

        Line2D([0], [0], color='red', label='Red Line') -> Option A
      4. Quick Check:

        Line2D needs x,y points + color + label [OK]
      Hint: Line2D needs x and y lists first, then style [OK]
      Common Mistakes:
      • Omitting x and y data points
      • Passing color as positional argument
      • Missing label parameter
      3. What will be the output legend labels for this code snippet?
      import matplotlib.pyplot as plt
      from matplotlib.lines import Line2D
      
      plt.plot([1, 2, 3], [4, 5, 6], 'b-')
      custom_line = Line2D([0], [0], color='red', lw=2)
      plt.legend([custom_line], ['Custom Red Line'])
      plt.show()
      medium
      A. A legend with two labels: 'Custom Red Line' and 'blue line'
      B. A legend with one label: 'blue line' shown in blue
      C. No legend will appear
      D. A legend with one label: 'Custom Red Line' shown in red

      Solution

      1. Step 1: Analyze plot and legend calls

        Plot draws a blue line but legend uses only custom_line handle with label 'Custom Red Line'.
      2. Step 2: Understand legend content

        Legend shows only what is passed: one red line with label 'Custom Red Line'.
      3. Final Answer:

        A legend with one label: 'Custom Red Line' shown in red -> Option D
      4. Quick Check:

        Legend shows passed handles and labels only [OK]
      Hint: Legend shows only handles and labels you pass [OK]
      Common Mistakes:
      • Assuming plot lines auto-appear in legend
      • Expecting multiple legend entries without passing handles
      • Thinking legend is empty
      4. Identify the error in this code that tries to add a custom legend entry for a green square patch:
      import matplotlib.pyplot as plt
      from matplotlib.patches import Patch
      
      patch = Patch(color='green', label='Green Square')
      plt.legend(handles=patch, labels=['Green Square'])
      plt.show()
      medium
      A. Patch cannot be used for legend entries
      B. The 'handles' argument should be a list, not a single Patch object
      C. The 'label' parameter is missing in Patch
      D. plt.show() must come before plt.legend()

      Solution

      1. Step 1: Check handles argument type

        plt.legend expects handles as a list or iterable, not a single object.
      2. Step 2: Identify fix

        Wrap patch in a list: handles=[patch] to fix the error.
      3. Final Answer:

        The 'handles' argument should be a list, not a single Patch object -> Option B
      4. Quick Check:

        Handles must be list or iterable [OK]
      Hint: Always pass handles as a list to plt.legend [OK]
      Common Mistakes:
      • Passing single object instead of list to handles
      • Ignoring label parameter in Patch
      • Calling plt.show() before plt.legend()
      5. You want to create a legend with a blue dashed line labeled 'Trend' and a red circle marker labeled 'Data Point'. Which code correctly creates custom legend entries for this?
      hard
      A. from matplotlib.lines import Line2D legend_elements = [Line2D([0], [0], color='blue', lw=2, linestyle='--', label='Trend'), Line2D([0], [0], marker='o', color='red', linestyle='', label='Data Point')] plt.legend(handles=legend_elements)
      B. from matplotlib.patches import Patch legend_elements = [Patch(color='blue', label='Trend'), Patch(color='red', label='Data Point')] plt.legend(handles=legend_elements)
      C. plt.legend(['Trend', 'Data Point'], loc='best')
      D. plt.legend(['blue dashed line', 'red circle'])

      Solution

      1. Step 1: Identify correct legend handles

        Blue dashed line and red circle marker require Line2D objects with correct styles.
      2. Step 2: Verify code correctness

        from matplotlib.lines import Line2D legend_elements = [Line2D([0], [0], color='blue', lw=2, linestyle='--', label='Trend'), Line2D([0], [0], marker='o', color='red', linestyle='', label='Data Point')] plt.legend(handles=legend_elements) creates Line2D with color='blue', linestyle='--' for 'Trend' and marker='o', color='red' for 'Data Point', then passes handles to plt.legend.
      3. Final Answer:

        from matplotlib.lines import Line2D legend_elements = [Line2D([0], [0], color='blue', lw=2, linestyle='--', label='Trend'), Line2D([0], [0], marker='o', color='red', linestyle='', label='Data Point')] plt.legend(handles=legend_elements) -> Option A
      4. Quick Check:

        Use Line2D with style and marker for custom legend [OK]
      Hint: Use Line2D with marker and linestyle for custom legend [OK]
      Common Mistakes:
      • Using Patch for line and marker legend
      • Passing only label strings without handles
      • Ignoring linestyle or marker parameters
      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