Bird
Raised Fist0
Matplotlibdata~20 mins

Why legends and colorbars guide reading in Matplotlib - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Legend and Colorbar Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this matplotlib legend code?

Look at the code below that plots two lines with a legend. What will the legend show?

Matplotlib
import matplotlib.pyplot as plt

plt.plot([1, 2, 3], [4, 5, 6], label='Line A')
plt.plot([1, 2, 3], [6, 5, 4], label='Line B')
plt.legend()
legend_texts = [text.get_text() for text in plt.gca().get_legend().get_texts()]
print(legend_texts)
plt.close()  # Prevent showing plot in test environment
A['Line B', 'Line A']
B['Line A', 'Line B']
C['line a', 'line b']
D[]
Attempts:
2 left
💡 Hint

Check the order of plotting and the labels assigned.

❓ data_output
intermediate
2:00remaining
How many colorbar ticks are shown in this heatmap?

This code creates a heatmap with a colorbar. How many ticks will the colorbar display?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(5,5)
fig, ax = plt.subplots()
cax = ax.imshow(data, cmap='viridis')
cb = fig.colorbar(cax, ticks=[0, 0.5, 1])
plt.close()
tick_labels = [tick.get_text() for tick in cb.ax.get_yticklabels() if tick.get_text() != '']
print(len(tick_labels))
A3
B5
C0
D1
Attempts:
2 left
💡 Hint

Look at the ticks argument passed to the colorbar.

❓ visualization
advanced
3:00remaining
Which option correctly adds a legend and colorbar to guide reading?

Given a scatter plot with points colored by a value, which code snippet correctly adds both a legend for categories and a colorbar for the color scale?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(5)
y = np.random.rand(5)
colors = np.linspace(0, 1, 5)
categories = ['A', 'B', 'A', 'B', 'A']

fig, ax = plt.subplots()
scatter = ax.scatter(x, y, c=colors, cmap='plasma')
Aax.legend(categories)\nfig.colorbar(scatter)
Bax.scatter(x, y, label=categories)\nfig.colorbar(scatter)
Cfor cat in set(categories):\n ax.scatter([], [], label=cat)\nax.legend()\nfig.colorbar(scatter)
Dax.legend()\nfig.colorbar()
Attempts:
2 left
💡 Hint

Think about how to create legend entries for categories without plotting extra points.

🔧 Debug
advanced
2:00remaining
What error does this code raise when adding a colorbar?

Consider this code snippet that tries to add a colorbar but raises an error. What is the error?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
scatter = ax.scatter([1,2,3], [4,5,6])
fig.colorbar()
plt.close()
AAttributeError: 'NoneType' object has no attribute 'colorbar'
BNo error, colorbar added successfully
CValueError: Invalid colorbar parameters
DTypeError: colorbar() missing 1 required positional argument: 'mappable'
Attempts:
2 left
💡 Hint

Check the required arguments for fig.colorbar()

🚀 Application
expert
2:30remaining
How does adding legends and colorbars improve data reading in plots?

Which statement best explains why legends and colorbars help people understand plots better?

AThey provide labels and scales that connect colors and symbols to data meaning, making interpretation easier.
BThey decorate the plot with colors and shapes to make it look more attractive.
CThey automatically fix errors in the data visualization code.
DThey reduce the amount of data shown so the plot is less cluttered.
Attempts:
2 left
💡 Hint

Think about how a reader knows what colors or symbols represent.

Practice

(1/5)
1. Why is it important to include a legend in a matplotlib plot?
easy
A. It explains what different colors or symbols represent in the plot.
B. It changes the plot's background color.
C. It adds grid lines to the plot.
D. It saves the plot as an image file.

Solution

  1. Step 1: Understand the role of a legend

    A legend helps explain what different colors or symbols in a plot mean, making the plot easier to read.
  2. Step 2: Compare options with legend purpose

    Options A, B, and C describe other plot features unrelated to legends.
  3. Final Answer:

    It explains what different colors or symbols represent in the plot. -> Option A
  4. Quick Check:

    Legend explains symbols/colors = D [OK]
Hint: Legends explain symbols/colors meaning in plots [OK]
Common Mistakes:
  • Thinking legends change plot colors
  • Confusing legends with grid lines
  • Assuming legends save files
2. Which of the following is the correct way to add a legend to a matplotlib plot?
easy
A. plt.colorbar()
B. plt.grid()
C. plt.title()
D. plt.legend()

Solution

  1. Step 1: Recall matplotlib functions for legends

    The function plt.legend() adds a legend to the plot.
  2. Step 2: Identify other functions' purposes

    plt.colorbar() adds a colorbar, plt.title() adds a title, and plt.grid() adds grid lines.
  3. Final Answer:

    plt.legend() -> Option D
  4. Quick Check:

    Legend function = plt.legend() [OK]
Hint: Use plt.legend() to add legends in matplotlib [OK]
Common Mistakes:
  • Using plt.colorbar() to add legends
  • Confusing plt.title() with legend function
  • Trying plt.grid() for legends
3. What will the following code display?
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.scatter(x, y, c=y, cmap='viridis')
plt.colorbar()
plt.show()
medium
A. A scatter plot with points colored by their y-value and a colorbar explaining the colors.
B. A line plot of y vs x with a legend showing labels.
C. A scatter plot with all points in the same color and no colorbar.
D. An error because colorbar cannot be used with scatter.

Solution

  1. Step 1: Analyze the scatter plot code

    The scatter plot colors points by their y-values using the 'viridis' colormap.
  2. Step 2: Understand the colorbar function

    plt.colorbar() adds a colorbar that explains the color scale used for the points.
  3. Final Answer:

    A scatter plot with points colored by their y-value and a colorbar explaining the colors. -> Option A
  4. Quick Check:

    Scatter with colorbar explains colors = A [OK]
Hint: Colorbar explains colors in scatter plots [OK]
Common Mistakes:
  • Thinking colorbar adds legend labels
  • Assuming scatter points all same color
  • Believing colorbar causes error with scatter
4. You created a plot with multiple lines but forgot to add a legend. Which of the following fixes the issue?
medium
A. Call plt.colorbar() without labels.
B. Add labels to each plot line and call plt.legend() after plotting.
C. Use plt.title() to describe the lines.
D. Change the plot background color.

Solution

  1. Step 1: Identify how to add legends for multiple lines

    Each line needs a label, and calling plt.legend() shows these labels as a legend.
  2. Step 2: Evaluate other options

    plt.colorbar() is for color scales, plt.title() adds a title, and changing background color does not add legends.
  3. Final Answer:

    Add labels to each plot line and call plt.legend() after plotting. -> Option B
  4. Quick Check:

    Labels + plt.legend() = legend shown [OK]
Hint: Add labels and call plt.legend() to fix missing legend [OK]
Common Mistakes:
  • Using plt.colorbar() to add legend
  • Relying on plot title for legend info
  • Changing background color expecting legend
5. You have a heatmap showing temperature data with colors representing temperature values. How do you best help readers understand the color meaning?
hard
A. Add grid lines to separate cells clearly.
B. Add a legend with labels for each temperature value.
C. Add a colorbar to the heatmap to explain the color scale.
D. Add a plot title describing the data.

Solution

  1. Step 1: Understand color mapping in heatmaps

    Heatmaps use colors to represent data values, so a colorbar explains what each color means.
  2. Step 2: Compare other options

    A legend with labels for each value is impractical for continuous data; grid lines and titles help layout but don't explain colors.
  3. Final Answer:

    Add a colorbar to the heatmap to explain the color scale. -> Option C
  4. Quick Check:

    Colorbar explains heatmap colors = C [OK]
Hint: Use colorbar for continuous color scales like heatmaps [OK]
Common Mistakes:
  • Using legend for continuous color scales
  • Thinking grid lines explain colors
  • Relying on title to explain color meaning
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