A scatter plot helps you see how two sets of numbers relate to each other by showing points on a graph.
To check if there is a pattern between hours studied and exam scores.
To see how temperature changes with time during a day.
To compare sales numbers of two products over several months.
To visualize the relationship between age and height in children.
Syntax
Matplotlib
plt.scatter(x, y, color='blue', marker='o')
x and y are lists or arrays of numbers of the same length.
You can change the color and shape of points using color and marker.
Examples
Basic scatter plot with default blue circles.
Matplotlib
plt.scatter([1, 2, 3], [4, 5, 6])
Scatter plot with red points.
Matplotlib
plt.scatter([1, 2, 3], [4, 5, 6], color='red')
Scatter plot with cross-shaped points.
Matplotlib
plt.scatter([1, 2, 3], [4, 5, 6], marker='x')
Sample Program
This program creates a scatter plot showing how exam scores increase with hours studied. Points are green circles. Labels and a grid help read the plot.
Make sure x and y have the same length, or you will get an error.
You can add labels and a title to make the plot easier to understand.
Use plt.show() to display the plot window.
Summary
A scatter plot shows points for two sets of numbers.
Use plt.scatter(x, y) with your data lists.
You can customize colors and shapes of points.
Practice
(1/5)
1. What does the plt.scatter(x, y) function do in matplotlib?
easy
A. It creates a line plot connecting x and y points.
B. It creates a scatter plot showing points for x and y data.
C. It creates a bar chart for x and y values.
D. It creates a histogram of x values only.
Solution
Step 1: Understand the purpose of plt.scatter
The function plt.scatter is designed to plot individual points based on two lists or arrays, x and y, showing their relationship.
Step 2: Compare with other plot types
Unlike line plots or bar charts, scatter plots show points without connecting lines or bars.
Final Answer:
It creates a scatter plot showing points for x and y data. -> Option B
Quick Check:
Scatter plot = points for x and y [OK]
Hint: Scatter plots show points, not lines or bars [OK]
Common Mistakes:
Confusing scatter plot with line plot
Thinking it creates bars or histograms
Assuming it only plots x values
2. Which of the following is the correct syntax to create a scatter plot with x and y lists (x horizontal, y vertical) using matplotlib?
easy
A. plt.scatter(x, y)
B. plt.scatter(y, x)
C. plt.plot.scatter(x, y)
D. scatter.plot(x, y)
Solution
Step 1: Recall the correct function call
The correct function to create a scatter plot in matplotlib is plt.scatter(x, y), where x and y are data lists.
Step 2: Identify incorrect syntax
Options with reversed arguments or wrong method chaining like plt.plot.scatter or scatter.plot are invalid.
Final Answer:
plt.scatter(x, y) -> Option A
Quick Check:
Correct syntax = plt.scatter(x, y) [OK]
Hint: Use plt.scatter(x, y) exactly for scatter plots [OK]
Common Mistakes:
Swapping x and y arguments
Using plt.plot.scatter instead of plt.scatter
Calling scatter on wrong object
3. What will be the output of this code?
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.scatter(x, y)
plt.show()
medium
A. An error because plt.show() is missing.
B. A line plot connecting points (1,4), (2,5), and (3,6).
C. A scatter plot with points at (1,4), (2,5), and (3,6).
D. A bar chart with bars at x positions 1, 2, 3.
Solution
Step 1: Understand plt.scatter with given data
The code plots points at coordinates from lists x and y: (1,4), (2,5), and (3,6).
Step 2: Confirm plt.show() displays the plot
The plt.show() command displays the scatter plot window with these points.
Final Answer:
A scatter plot with points at (1,4), (2,5), and (3,6). -> Option C
Quick Check:
Scatter plot points = (1,4), (2,5), (3,6) [OK]
Hint: Scatter plots show points at (x[i], y[i]) pairs [OK]
Common Mistakes:
Thinking plt.scatter creates line plots
Assuming plt.show() is optional and causes error
Confusing scatter with bar chart
4. Identify the error in this code snippet:
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5]
plt.scatter(x, y)
plt.show()
medium
A. plt.scatter requires numpy arrays, not lists.
B. The code is correct and runs without error.
C. plt.show() is missing to display the plot.
D. x and y lists have different lengths causing an error.
Solution
Step 1: Check lengths of x and y lists
The x list has 3 elements, but y has only 2 elements. This mismatch causes plt.scatter to raise a ValueError.
Step 2: Understand plt.scatter input requirements
Both x and y must have the same number of points to plot pairs correctly.
Final Answer:
x and y lists have different lengths causing an error. -> Option D
Quick Check:
Equal length x and y needed [OK]
Hint: x and y must be same length for scatter plot [OK]
Common Mistakes:
Ignoring length mismatch of x and y
Thinking plt.scatter needs numpy arrays only
Assuming plt.show() missing causes error
5. You want to plot points with x = [1, 2, 3, 4] and y = [10, 20, 30, 40], but color points red if y > 25 and blue otherwise. Which code correctly does this?
hard
A. colors = ['red' if val > 25 else 'blue' for val in y]
plt.scatter(x, y, c=colors)
plt.show()
B. plt.scatter(x, y, color=['red' if y > 25 else 'blue'])
plt.show()
C. plt.scatter(x, y, c='red' if y > 25 else 'blue')
plt.show()
D. colors = ['red' if x > 25 else 'blue' for x in x]
plt.scatter(x, y, c=colors)
plt.show()
Solution
Step 1: Create color list based on y values
We use a list comprehension to assign 'red' if y value is greater than 25, else 'blue'. This creates a color list matching each point.
Step 2: Pass color list to plt.scatter with c parameter
Using c=colors applies the color list to points correctly. Then plt.show() displays the plot.
Final Answer:
colors = ['red' if val > 25 else 'blue' for val in y]
plt.scatter(x, y, c=colors)
plt.show() -> Option A
Quick Check:
Use list comprehension for colors, pass as c=colors [OK]
Hint: Use list comprehension for colors, pass with c=colors [OK]
Common Mistakes:
Using 'color' instead of 'c' parameter
Passing single color string instead of list
Checking condition on x instead of y
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.