📖 Scenario: You are working with a heatmap that shows temperatures across a city grid. You want to add a colorbar to explain the colors to anyone looking at the map.
🎯 Goal: Create a heatmap using matplotlib and add a colorbar with a label and custom ticks to make the map easy to understand.
📋 What You'll Learn
Create a 2D list called temperature_data with the exact values [[20, 22, 23], [21, 24, 25], [19, 20, 22]]
Create a variable called colorbar_label and set it to the string 'Temperature (°C)'
Use matplotlib.pyplot.imshow to display temperature_data as a heatmap
Add a colorbar to the heatmap with the label from colorbar_label
Set the colorbar ticks to exactly [19, 21, 23, 25]
💡 Why This Matters
🌍 Real World
Colorbars help people understand what colors mean in heatmaps, like showing temperature, population density, or elevation on maps.
💼 Career
Data scientists and analysts use colorbars to make visualizations clear and easy to interpret for reports and presentations.
Progress0 / 4 steps
1
Create the temperature data
Create a 2D list called temperature_data with these exact values: [[20, 22, 23], [21, 24, 25], [19, 20, 22]]
Matplotlib
Hint
Use square brackets to create a list of lists. Each inner list is a row of temperatures.
2
Set the colorbar label
Create a variable called colorbar_label and set it to the string 'Temperature (°C)'
Matplotlib
Hint
Use single or double quotes to create the string exactly as shown.
3
Create the heatmap and add a colorbar
Import matplotlib.pyplot as plt. Use plt.imshow to display temperature_data as a heatmap. Then add a colorbar using plt.colorbar() and set its label to colorbar_label.
Matplotlib
Hint
Use plt.imshow to show the data and save the result to a variable. Then pass that variable to plt.colorbar(). Use set_label() on the colorbar to add the label.
4
Customize colorbar ticks and show the plot
Set the colorbar ticks to exactly [19, 21, 23, 25] using colorbar.set_ticks(). Then use plt.show() to display the heatmap with the colorbar.
Matplotlib
Hint
Use colorbar.set_ticks([19, 21, 23, 25]) to set the ticks. Then call plt.show() to display the figure.
Practice
(1/5)
1. What is the main purpose of adding a colorbar to a matplotlib plot?
easy
A. To add a title to the plot
B. To change the plot background color
C. To show the meaning of colors used in the plot
D. To save the plot as an image file
Solution
Step 1: Understand the role of color in plots
Colors often represent data values or categories in a plot.
Step 2: Purpose of colorbar
A colorbar explains what each color means, helping viewers interpret the plot correctly.
Final Answer:
To show the meaning of colors used in the plot -> Option C
Quick Check:
Colorbar explains colors = C [OK]
Hint: Colorbar explains colors in the plot [OK]
Common Mistakes:
Thinking colorbar changes background color
Confusing colorbar with plot title
Assuming colorbar saves the plot
2. Which of the following is the correct way to add a colorbar to a matplotlib plot stored in variable im?
easy
A. plt.colorbar(im)
B. plt.colorbar()
C. im.colorbar()
D. plt.add_colorbar(im)
Solution
Step 1: Identify the function to add colorbar
Matplotlib uses plt.colorbar() and requires the image or plot object as argument.
Step 2: Check the correct syntax
Passing im to plt.colorbar(im) correctly links the colorbar to the plot.
Final Answer:
plt.colorbar(im) -> Option A
Quick Check:
plt.colorbar(im) adds colorbar [OK]
Hint: Use plt.colorbar(plot_object) to add colorbar [OK]
Common Mistakes:
Calling colorbar without argument
Trying to call colorbar on plot object
Using non-existent plt.add_colorbar function
3. What will be the effect of this code snippet?
import matplotlib.pyplot as plt
import numpy as np
img = np.random.rand(5,5)
im = plt.imshow(img, cmap='viridis')
cb = plt.colorbar(im, orientation='horizontal')
plt.show()
medium
A. A vertical colorbar appears on the right side
B. A horizontal colorbar appears below the image
C. No colorbar appears because orientation is invalid
D. The plot shows an error and does not display
Solution
Step 1: Understand the orientation parameter
Setting orientation='horizontal' places the colorbar horizontally below or above the plot.
Step 2: Check the code behavior
The code creates a heatmap and adds a horizontal colorbar below it, so the colorbar is horizontal.
Final Answer:
A horizontal colorbar appears below the image -> Option B
Quick Check:
orientation='horizontal' means horizontal colorbar [OK]
Hint: orientation='horizontal' makes colorbar horizontal [OK]
4. Identify the error in this code that tries to add a colorbar:
import matplotlib.pyplot as plt
import numpy as np
img = np.random.rand(10,10)
im = plt.imshow(img)
plt.clf()
plt.colorbar()
plt.show()
medium
A. plt.show() must come before plt.colorbar()
B. plt.imshow() cannot be used with colorbar
C. np.random.rand() generates wrong data type
D. plt.colorbar() missing the plot object argument
Solution
Step 1: Check plt.colorbar() usage
When adding a colorbar, you must pass the image or plot object to plt.colorbar().
Step 2: Identify missing argument
The code calls plt.colorbar() without im, so matplotlib doesn't know which plot to link the colorbar to.
Final Answer:
plt.colorbar() missing the plot object argument -> Option D
Quick Check:
colorbar needs plot object argument [OK]
Hint: Always pass plot object to plt.colorbar() [OK]
Common Mistakes:
Forgetting to pass the image to colorbar
Thinking plt.imshow() can't have colorbar
Calling plt.show() before colorbar
5. You want to create a plot with a colorbar that only shows ticks at values 0.2, 0.5, and 0.8. Which code snippet correctly sets these ticks on the colorbar?
import matplotlib.pyplot as plt
import numpy as np
img = np.random.rand(10,10)
im = plt.imshow(img, cmap='plasma')
cb = plt.colorbar(im)
# Which line below sets the ticks correctly?
hard
A. cb.set_ticks([0.2, 0.5, 0.8])
B. plt.colorbar.set_ticks([0.2, 0.5, 0.8])
C. im.set_ticks([0.2, 0.5, 0.8])
D. cb.ticks = [0.2, 0.5, 0.8]
Solution
Step 1: Identify the colorbar object
The variable cb holds the colorbar returned by plt.colorbar(im).
Step 2: Use the correct method to set ticks
The method to set ticks on a colorbar is set_ticks() called on the colorbar object.
Final Answer:
cb.set_ticks([0.2, 0.5, 0.8]) -> Option A
Quick Check:
Use colorbar.set_ticks() to set ticks [OK]
Hint: Use colorbar.set_ticks(list_of_values) to set ticks [OK]
Common Mistakes:
Trying to set ticks on plt.colorbar directly
Setting ticks on the image object
Assigning ticks list to attribute instead of method
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.