The image must be shown first with plt.imshow() so that scatter points appear on top.
Step 2: Correct syntax for scatter color
Use color='red' inside plt.scatter() to make points red.
Final Answer:
plt.imshow(image) then plt.scatter(x, y, color='red') -> Option C
Quick Check:
Image first, then scatter with color [OK]
Hint: Show image before scatter to overlay correctly [OK]
Common Mistakes:
Plotting scatter before image hides points
Passing color to imshow instead of scatter
Calling plt.show() too early
3. What will be the output of the following code?
import matplotlib.pyplot as plt
import numpy as np
image = np.zeros((5,5))
x = [1, 3]
y = [2, 4]
plt.imshow(image, cmap='gray')
plt.scatter(x, y, color='blue')
plt.show()
medium
A. A white 5x5 image with two blue points at coordinates (1,2) and (3,4)
B. An error because x and y coordinates are swapped
C. A black 5x5 image with two red points at coordinates (2,1) and (4,3)
D. A black 5x5 image with two blue points at coordinates (1,2) and (3,4)
Solution
Step 1: Understand the image array
The image is a 5x5 array of zeros, so it appears black with cmap='gray'.
Step 2: Plot scatter points
Points at (x=1, y=2) and (x=3, y=4) are plotted in blue on top of the image.
Final Answer:
A black 5x5 image with two blue points at coordinates (1,2) and (3,4) -> Option D
4. The following code is intended to overlay a green line on an image, but the line does not appear. What is the error?
import matplotlib.pyplot as plt
import numpy as np
image = np.ones((10,10))
plt.imshow(image)
plt.plot([1, 8], [1, 8], color='green')
plt.show()
medium
A. The image is white and the green line is not visible due to default alpha
B. The plot command should be called before imshow
C. The color argument should be 'c' instead of 'color'
D. The coordinates for the line are outside the image bounds
Solution
Step 1: Analyze the image color
The image is an array of ones, which appears white by default.
Step 2: Check line visibility
A green line on a white background may be hard to see if the line is thin and no linewidth is set.
Final Answer:
The image is white and the green line is not visible due to default alpha -> Option A
Quick Check:
White background hides thin green line [OK]
Hint: Check background and line colors for visibility [OK]
Common Mistakes:
Plotting line before image hides image
Using wrong color argument name
Assuming coordinates are out of bounds
5. You want to overlay a heatmap of data values on top of a grayscale image using matplotlib. Which approach correctly combines the image and heatmap with transparency so both are visible?