Bird
Raised Fist0
Matplotlibdata~20 mins

Heatmap with plt.imshow in Matplotlib - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Heatmap Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of plt.imshow with a simple 2D array
What will be the color intensity pattern shown by plt.imshow for this 2D array?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

array = np.array([[1, 2], [3, 4]])
plt.imshow(array, cmap='gray')
plt.colorbar()
plt.show()
AA heatmap with the top-left corner darkest and bottom-right corner brightest
BA heatmap with uniform color intensity across all cells
CA heatmap with the top-left corner brightest and bottom-right corner darkest
DA heatmap showing only two colors alternating in a checkerboard pattern
Attempts:
2 left
💡 Hint
Remember that in grayscale, lower values are darker and higher values are brighter.
❓ data_output
intermediate
1:30remaining
Shape of the array displayed by plt.imshow
Given this code, what is the shape of the array that plt.imshow displays as a heatmap?
Matplotlib
import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(5, 3)
plt.imshow(data)
plt.show()
A(5, 3)
B(3, 5)
C(5, 5)
D(3, 3)
Attempts:
2 left
💡 Hint
Check the shape of the numpy array before plotting.
❓ visualization
advanced
2:30remaining
Effect of aspect parameter in plt.imshow
What visual effect does setting aspect='auto' have on the heatmap created by plt.imshow compared to the default aspect setting?
Matplotlib
import numpy as np
import matplotlib.pyplot as plt

matrix = np.arange(12).reshape(3,4)
plt.subplot(1,2,1)
plt.title('Default aspect')
plt.imshow(matrix)
plt.subplot(1,2,2)
plt.title('aspect="auto"')
plt.imshow(matrix, aspect='auto')
plt.show()
AThe heatmap disappears when aspect='auto' is used.
BThe heatmap cells remain perfect squares in both plots.
CThe heatmap colors invert when aspect='auto' is set.
DThe heatmap cells stretch to fill the plot area, changing their shape from square to rectangles.
Attempts:
2 left
💡 Hint
Aspect controls the ratio of height to width of the heatmap cells.
🔧 Debug
advanced
1:30remaining
Identify the error in this plt.imshow heatmap code
What error will this code produce when run?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

arr = np.array([1, 2, 3, 4])
plt.imshow(arr)
plt.show()
ANo error, heatmap displays correctly
BTypeError: Unsupported data type for imshow
CValueError: Input must be 2D array, got 1D array instead
DIndexError: index out of bounds
Attempts:
2 left
💡 Hint
Check the shape of the array passed to plt.imshow.
🚀 Application
expert
3:00remaining
Interpreting a heatmap with plt.imshow and custom colormap
You create a heatmap with plt.imshow using this code. What color corresponds to the highest value in the data?
Matplotlib
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

values = np.array([[0, 1], [2, 3]])
colors = [(0, 'blue'), (0.5, 'white'), (1, 'red')]
custom_cmap = LinearSegmentedColormap.from_list('custom', colors)
plt.imshow(values, cmap=custom_cmap)
plt.colorbar()
plt.show()
AWhite
BRed
CBlue
DBlack
Attempts:
2 left
💡 Hint
Look at how the colormap maps values from 0 to 1 to colors.

Practice

(1/5)
1. What does the plt.imshow function do in matplotlib when given a 2D array?
easy
A. It prints the array values as text on the plot.
B. It plots a line graph of the array values.
C. It creates a heatmap by showing the array values as colors.
D. It creates a pie chart from the array values.

Solution

  1. Step 1: Understand plt.imshow input

    The function takes a 2D array and maps its values to colors in a grid.
  2. Step 2: Recognize heatmap behavior

    This color mapping creates a heatmap, showing patterns visually.
  3. Final Answer:

    It creates a heatmap by showing the array values as colors. -> Option C
  4. Quick Check:

    plt.imshow = heatmap colors [OK]
Hint: plt.imshow shows 2D data as colored grids [OK]
Common Mistakes:
  • Thinking plt.imshow plots lines or text
  • Confusing heatmap with pie chart
  • Assuming plt.imshow prints numbers
2. Which of these is the correct way to add a color bar to a heatmap created with plt.imshow?
easy
A. plt.colorbar()
B. plt.addcolor()
C. plt.showcolor()
D. plt.colorheat()

Solution

  1. Step 1: Recall color bar function

    Matplotlib uses plt.colorbar() to add a color scale next to images.
  2. Step 2: Check other options

    Other options are not valid matplotlib functions.
  3. Final Answer:

    plt.colorbar() -> Option A
  4. Quick Check:

    Color bar function = plt.colorbar() [OK]
Hint: Use plt.colorbar() to add color scale [OK]
Common Mistakes:
  • Using non-existent functions like plt.addcolor()
  • Forgetting to call plt.colorbar() after plt.imshow()
  • Trying to add color bar before plotting heatmap
3. What will the following code display?
import matplotlib.pyplot as plt
import numpy as np

data = np.array([[1, 2], [3, 4]])
plt.imshow(data, cmap='hot')
plt.colorbar()
plt.show()
medium
A. A scatter plot of points (1,2) and (3,4) with hot colors.
B. A line plot of the numbers 1, 2, 3, 4 with a color bar.
C. An error because cmap='hot' is invalid.
D. A 2x2 heatmap with colors from black to red to yellow, and a color bar showing values 1 to 4.

Solution

  1. Step 1: Understand plt.imshow with cmap='hot'

    The data array is 2x2, so plt.imshow creates a 2x2 grid colored by values using the 'hot' color map (black to red to yellow).
  2. Step 2: Effect of plt.colorbar()

    The color bar shows the scale from the minimum value 1 to maximum 4, helping interpret colors.
  3. Final Answer:

    A 2x2 heatmap with colors from black to red to yellow, and a color bar showing values 1 to 4. -> Option D
  4. Quick Check:

    plt.imshow + cmap='hot' + colorbar = heatmap with hot colors [OK]
Hint: cmap='hot' colors low to high values black-red-yellow [OK]
Common Mistakes:
  • Thinking plt.imshow plots lines or scatter
  • Believing cmap='hot' causes error
  • Ignoring color bar meaning
4. The code below is intended to show a heatmap but does not display the color bar. What is the error?
import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(3,3)
plt.imshow(data)
plt.colorbar
plt.show()
medium
A. plt.colorbar is missing parentheses, so color bar is not shown.
B. plt.imshow needs a cmap argument to show color bar.
C. plt.show() must come before plt.colorbar().
D. np.random.rand(3,3) creates invalid data for heatmap.

Solution

  1. Step 1: Identify plt.colorbar usage

    The code uses plt.colorbar without parentheses, so the function is not called.
  2. Step 2: Correct function call

    Adding parentheses plt.colorbar() calls the function and displays the color bar.
  3. Final Answer:

    plt.colorbar is missing parentheses, so color bar is not shown. -> Option A
  4. Quick Check:

    Call plt.colorbar() with () to show color bar [OK]
Hint: Always call plt.colorbar() with parentheses [OK]
Common Mistakes:
  • Forgetting parentheses on plt.colorbar
  • Thinking cmap is required for color bar
  • Calling plt.show() before plt.colorbar
5. You have a 4x4 matrix with values from 0 to 15. You want to create a heatmap using plt.imshow that shows the values clearly with a color bar, but you want the color scale to always be from 0 to 20 regardless of data. Which code snippet correctly does this?
hard
A. plt.imshow(matrix, vmin=0, vmax=15) plt.colorbar() plt.show()
B. plt.imshow(matrix, vmin=0, vmax=20) plt.colorbar() plt.show()
C. plt.imshow(matrix, cmap='gray') plt.colorbar() plt.show()
D. plt.imshow(matrix) plt.colorbar(vmin=0, vmax=20) plt.show()

Solution

  1. Step 1: Set color scale limits in plt.imshow

    Use vmin=0 and vmax=20 in plt.imshow to fix color scale from 0 to 20.
  2. Step 2: Add color bar normally

    Call plt.colorbar() to show the color scale matching the fixed limits.
  3. Final Answer:

    plt.imshow(matrix, vmin=0, vmax=20) plt.colorbar() plt.show() -> Option B
  4. Quick Check:

    Set vmin/vmax in imshow, then add colorbar [OK]
Hint: Use vmin and vmax in plt.imshow to fix color scale [OK]
Common Mistakes:
  • Setting vmin/vmax in plt.colorbar instead of plt.imshow
  • Not setting vmax to 20, so scale auto adjusts
  • Using wrong vmin/vmax values
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