📖 Scenario: You are a data analyst working with a small dataset of students' study hours and their exam scores. You want to visualize the relationship between study hours and exam scores using a scatter plot.
🎯 Goal: Create a scatter plot using plt.scatter to show how study hours relate to exam scores.
📋 What You'll Learn
Create two lists: study_hours and exam_scores with exact values.
Create a variable point_color to set the color of the scatter points.
Use plt.scatter with the lists and point_color to plot the points.
Display the scatter plot using plt.show().
💡 Why This Matters
🌍 Real World
Scatter plots help visualize relationships between two sets of numbers, like hours studied and exam scores, to find patterns.
💼 Career
Data analysts and scientists use scatter plots to explore data and communicate findings clearly.
Progress0 / 4 steps
1
Create the data lists
Create a list called study_hours with these exact values: [2, 3, 5, 7, 8]. Also create a list called exam_scores with these exact values: [50, 60, 70, 80, 90].
Matplotlib
Hint
Use square brackets [] to create lists with the exact numbers given.
2
Set the color for scatter points
Create a variable called point_color and set it to the string 'blue' to use as the color for the scatter plot points.
Matplotlib
Hint
Assign the string 'blue' to the variable point_color.
3
Create the scatter plot
Import matplotlib.pyplot as plt. Then use plt.scatter with study_hours, exam_scores, and the color set by point_color to create the scatter plot.
Matplotlib
Hint
Use import matplotlib.pyplot as plt at the top. Then call plt.scatter() with the two lists and color=point_color.
4
Display the scatter plot
Use plt.show() to display the scatter plot you created.
Matplotlib
Hint
Call plt.show() to open the window with the scatter plot.
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.