Bird
Raised Fist0
Matplotlibdata~5 mins

Basic scatter plot with plt.scatter in Matplotlib

Choose your learning style10 modes available
Introduction

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.

Matplotlib
import matplotlib.pyplot as plt

# Data: hours studied vs exam scores
hours = [1, 2, 3, 4, 5]
scores = [50, 55, 65, 70, 80]

plt.scatter(hours, scores, color='green', marker='o')
plt.title('Hours Studied vs Exam Scores')
plt.xlabel('Hours Studied')
plt.ylabel('Exam Score')
plt.grid(True)
plt.show()
OutputSuccess
Important Notes

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

  1. 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.
  2. Step 2: Compare with other plot types

    Unlike line plots or bar charts, scatter plots show points without connecting lines or bars.
  3. Final Answer:

    It creates a scatter plot showing points for x and y data. -> Option B
  4. 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

  1. 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.
  2. Step 2: Identify incorrect syntax

    Options with reversed arguments or wrong method chaining like plt.plot.scatter or scatter.plot are invalid.
  3. Final Answer:

    plt.scatter(x, y) -> Option A
  4. 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

  1. 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).
  2. Step 2: Confirm plt.show() displays the plot

    The plt.show() command displays the scatter plot window with these points.
  3. Final Answer:

    A scatter plot with points at (1,4), (2,5), and (3,6). -> Option C
  4. 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

  1. 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.
  2. Step 2: Understand plt.scatter input requirements

    Both x and y must have the same number of points to plot pairs correctly.
  3. Final Answer:

    x and y lists have different lengths causing an error. -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    colors = ['red' if val > 25 else 'blue' for val in y] plt.scatter(x, y, c=colors) plt.show() -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard