📖 Scenario: You are working with temperature data for a week. You want to visualize the temperatures using colors so it is easy to see which days were hotter or colder.
🎯 Goal: Create a color map for the temperature values and display a colorbar to show the temperature scale.
📋 What You'll Learn
Create a list of temperatures for 7 days
Create a colormap using matplotlib
Map the temperatures to colors using the colormap
Display a colorbar showing the temperature scale
💡 Why This Matters
🌍 Real World
Color mapping with colorbars is used in weather maps, heatmaps, and scientific visualizations to show data intensity or value ranges clearly.
💼 Career
Data scientists and analysts use color mapping to make data easier to understand visually, helping in reports and presentations.
Progress0 / 4 steps
1
Create the temperature data list
Create a list called temperatures with these exact values: 22, 25, 19, 30, 28, 24, 20 representing temperatures for 7 days.
Matplotlib
Hint
Use square brackets to create a list and separate values with commas.
2
Create a colormap and normalization
Import matplotlib.pyplot as plt and Normalize from matplotlib.colors. Then create a Normalize object called norm with vmin=19 and vmax=30 to normalize the temperature range.
Matplotlib
Hint
Use import matplotlib.pyplot as plt and from matplotlib.colors import Normalize.
Create norm = Normalize(vmin=19, vmax=30).
3
Map temperatures to colors using a colormap
Create a variable called cmap and set it to plt.cm.viridis. Then create a list called colors by applying cmap(norm(temp)) for each temp in temperatures using a list comprehension.
Matplotlib
Hint
Use plt.cm.viridis for the colormap.
Use a list comprehension to map each temperature to a color.
4
Display the colorbar with the temperature scale
Create a figure and axis using plt.subplots(). Then create a ScalarMappable object called sm with the norm and cmap. Use sm.set_array([]). Finally, add a colorbar to the axis with plt.colorbar(sm, ax=ax) and call plt.show() to display the plot.
Matplotlib
Hint
Use ScalarMappable to create a mappable for the colorbar.
Call plt.colorbar with the mappable and axis.
Practice
(1/5)
1. What is the main purpose of adding a colorbar in a matplotlib plot with color mapping?
easy
A. To show the scale of colors representing data values
B. To change the plot title
C. To add grid lines to the plot
D. To save the plot as an image file
Solution
Step 1: Understand color mapping
Color mapping assigns colors to data values to visualize differences.
Step 2: Role of colorbar
The colorbar shows which colors correspond to which data values, acting as a legend.
Final Answer:
To show the scale of colors representing data values -> Option A
Quick Check:
Colorbar explains colors = B [OK]
Hint: Colorbar always explains color scale in plots [OK]
Common Mistakes:
Thinking colorbar changes plot title
Confusing colorbar with grid lines
Assuming colorbar saves the plot
2. Which of the following is the correct way to add a colorbar to a scatter plot in matplotlib?
easy
A. plt.scatter(x, y); plt.colorbar(c=z)
B. plt.colorbar(); plt.scatter(x, y, c=z)
C. plt.scatter(x, y, c=z); plt.colorbar()
D. plt.scatter(x, y, c=z, colorbar=True)
Solution
Step 1: Plot with color mapping
Use plt.scatter(x, y, c=z) to map colors to values z.
Step 2: Add colorbar after plotting
Call plt.colorbar() after the scatter plot to add the color scale.
Final Answer:
plt.scatter(x, y, c=z); plt.colorbar() -> Option C
Quick Check:
Plot first, then colorbar [OK]
Hint: Call plt.colorbar() after plotting with color data [OK]
Common Mistakes:
Calling plt.colorbar() before plotting
Passing colorbar as a parameter to scatter
Trying to pass c=z inside plt.colorbar()
3. What will the following code display?
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(5)
y = np.arange(5)
z = x * y
plt.scatter(x, y, c=z)
plt.colorbar()
plt.show()
medium
A. A scatter plot with points colored from 0 to 16 and a colorbar showing this range
B. A scatter plot with all points in the same color and no colorbar
C. A line plot connecting points with a colorbar
D. An error because colorbar needs a colormap argument
Solution
Step 1: Understand data and color mapping
x and y are arrays 0 to 4, z is their product (0,1,4,9,16).
Step 2: Scatter plot with color mapping and colorbar
Points colored by z values, colorbar shows color scale from min to max z.
Final Answer:
A scatter plot with points colored from 0 to 16 and a colorbar showing this range -> Option A
Quick Check:
Color mapped scatter with colorbar = D [OK]
Hint: Colorbar shows range of c= values in scatter [OK]
4. Identify the error in this code snippet that tries to add a colorbar:
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.scatter(x, y)
plt.colorbar()
plt.show()
medium
A. Error because plt.show() is missing
B. No error; code runs fine and shows colorbar
C. Error because plt.colorbar() must be called before scatter
D. Error because scatter plot has no color mapping (c parameter missing)
Solution
Step 1: Check scatter plot parameters
Scatter plot lacks c= parameter, so no color mapping exists.
Step 2: Understand colorbar requirement
Colorbar needs a mappable object with colors; without c=, colorbar cannot be created.
Final Answer:
Error because scatter plot has no color mapping (c parameter missing) -> Option D
Quick Check:
Colorbar needs color data = A [OK]
Hint: Colorbar requires color mapping (c=) in plot [OK]
Common Mistakes:
Calling colorbar before plotting
Forgetting plt.show() (though optional)
Assuming colorbar works without color data
5. You want to create a heatmap using imshow with a colorbar that shows values from 0 to 1. Which code snippet correctly sets the color limits and adds the colorbar?
hard
A. plt.imshow(data); plt.colorbar(vmin=0, vmax=1)
B. plt.imshow(data, vmin=0, vmax=1); plt.colorbar()
C. plt.imshow(data, colorbar=True, vmin=0, vmax=1)
D. plt.imshow(data); plt.colorbar(); plt.clim(0, 1)
Solution
Step 1: Set color limits in imshow
Use vmin=0 and vmax=1 in imshow to fix color scale range.
Step 2: Add colorbar without extra arguments
Call plt.colorbar() after plotting to add the colorbar matching the scale.
Final Answer:
plt.imshow(data, vmin=0, vmax=1); plt.colorbar() -> Option B
Quick Check:
Set vmin/vmax in imshow, then colorbar [OK]
Hint: Set vmin/vmax in imshow, then call plt.colorbar() [OK]
Common Mistakes:
Passing vmin/vmax to plt.colorbar() instead of imshow
Using colorbar=True inside imshow (not valid)
Calling plt.clim() after colorbar (wrong order)
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.