A heatmap shows how numbers change across two directions using colors. Using plt.pcolormesh helps you draw this color grid easily.
You want to see how temperature changes across a map.
You want to compare sales numbers across different stores and months.
You want to visualize how a machine learning model's errors vary by two factors.
You want to quickly spot patterns or clusters in a table of numbers.
Syntax
Matplotlib
plt.pcolormesh(X, Y, C, shading='auto', cmap='viridis')
plt.colorbar()
X and Y are grid coordinates (can be 1D or 2D arrays).
C is the 2D array of values to color.
Examples
Basic heatmap with default X and Y coordinates.
Matplotlib
import numpy as np
import matplotlib.pyplot as plt
# Simple 2D data
C = np.array([[1, 2], [3, 4]])
plt.pcolormesh(C, shading='auto')
plt.colorbar()
plt.show()
Heatmap with explicit X and Y coordinates and a different color style.
Matplotlib
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(3)
y = np.arange(3)
C = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
plt.pcolormesh(x, y, C, shading='auto', cmap='plasma')
plt.colorbar()
plt.show()
Sample Program
This program creates a grid of points and calculates values using sine and cosine. Then it draws a heatmap showing these values with colors.
Matplotlib
import numpy as np
import matplotlib.pyplot as plt
# Create data for heatmap
x = np.linspace(0, 5, 6)
y = np.linspace(0, 5, 6)
X, Y = np.meshgrid(x, y)
# Values: simple function of X and Y
C = np.sin(X) * np.cos(Y)
# Draw heatmap
plt.pcolormesh(X, Y, C, shading='auto', cmap='coolwarm')
plt.colorbar(label='Value')
plt.title('Heatmap with plt.pcolormesh')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.show()
OutputSuccess
Important Notes
Use shading='auto' to avoid warnings about grid size.
The color map (cmap) changes the color style. Try different ones like viridis, plasma, or coolwarm.
Always add plt.colorbar() to explain what the colors mean.
Summary
Heatmaps show data values as colors on a grid.
plt.pcolormesh draws heatmaps using X, Y coordinates and values.
Adding a color bar helps understand the color scale.
Practice
(1/5)
1. What does plt.pcolormesh do in matplotlib?
easy
A. It creates a scatter plot with colored dots.
B. It plots a line graph connecting points.
C. It creates a heatmap by coloring a grid based on data values.
D. It draws bar charts with colored bars.
Solution
Step 1: Understand the function purpose
plt.pcolormesh colors a grid of cells based on the values in a 2D array, making a heatmap.
Step 2: Compare with other plot types
Line graphs connect points, scatter plots show dots, and bar charts show bars, none of which match pcolormesh.
Final Answer:
It creates a heatmap by coloring a grid based on data values. -> Option C
Quick Check:
Heatmap = pcolormesh = A [OK]
Hint: pcolormesh colors grids for heatmaps, not lines or bars [OK]
Common Mistakes:
Confusing pcolormesh with line or scatter plots
Thinking pcolormesh plots points instead of colored cells
Assuming pcolormesh creates bar charts
2. Which of these is the correct way to add a colorbar to a heatmap created with plt.pcolormesh?
easy
A. plt.colorbar()
B. plt.add_colorbar()
C. plt.show_colorbar()
D. plt.colorbar_add()
Solution
Step 1: Recall matplotlib colorbar syntax
The correct function to add a colorbar is plt.colorbar().
Step 2: Check other options
Functions like plt.add_colorbar(), plt.show_colorbar(), or plt.colorbar_add() do not exist in matplotlib.
Final Answer:
plt.colorbar() -> Option A
Quick Check:
Colorbar function = plt.colorbar() = B [OK]
Hint: Use plt.colorbar() exactly to add color legend [OK]
Common Mistakes:
Using non-existent functions like plt.add_colorbar()
Forgetting to add a colorbar after pcolormesh
Trying to add colorbar before plotting heatmap
3. What will the following code display?
import matplotlib.pyplot as plt
import numpy as np
Z = np.array([[1, 2], [3, 4]])
plt.pcolormesh(Z)
plt.colorbar()
plt.show()
medium
A. An error because Z is not a 1D array.
B. A line plot connecting points 1, 2, 3, 4.
C. A scatter plot with 4 points colored by values.
D. A 2x2 heatmap with colors representing values 1 to 4 and a colorbar.
Solution
Step 1: Understand the input array Z
Z is a 2x2 numpy array with values from 1 to 4.
Step 2: What does plt.pcolormesh(Z) do?
It creates a heatmap grid colored by the values in Z, so 4 colored squares.
Step 3: Adding plt.colorbar()
This adds a color scale legend showing how colors map to values 1 to 4.
Final Answer:
A 2x2 heatmap with colors representing values 1 to 4 and a colorbar. -> Option D
import matplotlib.pyplot as plt
import numpy as np
Z = np.array([[1, 2], [3, 4]])
plt.pcolormesh(Z)
plt.colorbar
plt.show()
medium
A. Missing parentheses after plt.colorbar causing no colorbar to show.
B. Z should be a 1D array, not 2D.
C. plt.show() must come before plt.pcolormesh().
D. plt.pcolormesh() requires x and y coordinates explicitly.
Solution
Step 1: Check plt.colorbar usage
The code uses plt.colorbar without parentheses, so the function is not called.
Step 2: Effect of missing parentheses
Without calling the function, no colorbar appears on the plot.
Final Answer:
Missing parentheses after plt.colorbar causing no colorbar to show. -> Option A
Quick Check:
Call plt.colorbar() with () to show colorbar [OK]
Hint: Always add () after plt.colorbar to display it [OK]
Common Mistakes:
Forgetting () after plt.colorbar
Thinking 2D array is invalid input
Calling plt.show() too early
Assuming x,y needed for simple heatmap
5. You want to create a heatmap of a 3x3 matrix with values from 0 to 8 using plt.pcolormesh. Which code correctly sets the x and y axis labels to 'X Axis' and 'Y Axis' and adds a colorbar?
hard
A. import matplotlib.pyplot as plt
import numpy as np
Z = np.arange(9).reshape(3,3)
plt.pcolormesh(Z)
plt.set_xlabel('X Axis')
plt.set_ylabel('Y Axis')
plt.colorbar()
plt.show()
B. import matplotlib.pyplot as plt
import numpy as np
Z = np.arange(9).reshape(3,3)
plt.pcolormesh(Z)
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
C. import matplotlib.pyplot as plt
import numpy as np
Z = np.arange(9).reshape(3,3)
plt.pcolormesh(Z)
plt.xlabel = 'X Axis'
plt.ylabel = 'Y Axis'
plt.colorbar()
plt.show()
D. import matplotlib.pyplot as plt
import numpy as np
Z = np.arange(9).reshape(3,3)
plt.pcolormesh(Z)
plt.axis_labels('X Axis', 'Y Axis')
plt.colorbar()
plt.show()
Solution
Step 1: Check axis label functions
The correct functions to label axes are plt.xlabel() and plt.ylabel().
Step 2: Verify colorbar and show usage
plt.colorbar() must be called with parentheses, and plt.show() displays the plot.
Step 3: Identify incorrect options
import matplotlib.pyplot as plt
import numpy as np
Z = np.arange(9).reshape(3,3)
plt.pcolormesh(Z)
plt.set_xlabel('X Axis')
plt.set_ylabel('Y Axis')
plt.colorbar()
plt.show() uses non-existent plt.set_xlabel(), C assigns strings instead of calling functions, D uses a non-existent plt.axis_labels().
Final Answer:
import matplotlib.pyplot as plt
import numpy as np
Z = np.arange(9).reshape(3,3)
plt.pcolormesh(Z)
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show() -> Option B
Quick Check:
Use plt.xlabel(), plt.ylabel(), plt.colorbar() [OK]
Hint: Use plt.xlabel() and plt.ylabel() to label axes [OK]
Common Mistakes:
Using plt.set_xlabel() instead of plt.xlabel()
Assigning labels instead of calling functions
Forgetting parentheses on plt.colorbar()
Using non-existent axis_labels() function
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.