📖 Scenario: You work as a data analyst for a small company that sells different products. You have collected data about the price and sales of each product. You want to see if there is any relationship between the price of a product and how many units it sells.
🎯 Goal: You will create a scatter plot using pandas to visualize the relationship between product prices and sales.
📋 What You'll Learn
Create a pandas DataFrame with product data
Add a variable for the size of the scatter points
Use the DataFrame to create a scatter plot with price on the x-axis and sales on the y-axis
Display the scatter plot
💡 Why This Matters
🌍 Real World
Scatter plots help visualize relationships between two numeric variables, like price and sales, to find patterns or trends.
💼 Career
Data analysts and scientists use scatter plots to explore data and communicate insights clearly to teams and decision makers.
Progress0 / 4 steps
1
Create the product data
Create a pandas DataFrame called products with these exact columns and values: 'Product': ['Pen', 'Notebook', 'Eraser', 'Pencil', 'Marker'] 'Price': [1.5, 3.0, 0.5, 1.0, 2.0] 'Sales': [100, 80, 150, 120, 90]
Pandas
Hint
Use pd.DataFrame with a dictionary where keys are column names and values are lists of data.
2
Add a size variable for points
Create a variable called sizes that contains the Sales column from the products DataFrame multiplied by 2. This will be used to set the size of the scatter plot points.
Pandas
Hint
Use products['Sales'] to get the sales column and multiply it by 2.
3
Create the scatter plot
Use the plot.scatter method on the products DataFrame to create a scatter plot with x='Price', y='Sales', and s=sizes to set the point sizes.
Pandas
Hint
Use products.plot.scatter(x='Price', y='Sales', s=sizes) to create the scatter plot.
4
Display the scatter plot
Use import matplotlib.pyplot as plt and then call plt.show() to display the scatter plot.
Pandas
Hint
Import matplotlib.pyplot as plt and call plt.show() to display the plot window.
Practice
(1/5)
1. What does a scatter plot primarily show in a pandas DataFrame?
easy
A. The relationship between two numeric columns
B. The frequency of a single categorical column
C. The sum of all numeric columns
D. The average value of a column over time
Solution
Step 1: Understand scatter plot purpose
A scatter plot is used to visualize how two numeric variables relate to each other by plotting points on an x and y axis.
Step 2: Match with options
Only The relationship between two numeric columns describes this relationship between two numeric columns, while others describe different chart types or summaries.
Final Answer:
The relationship between two numeric columns -> Option A
Quick Check:
Scatter plot = relationship between two numeric columns [OK]
Hint: Scatter plots always compare two numeric columns [OK]
Common Mistakes:
Confusing scatter plots with bar charts
Thinking scatter plots show single column frequency
Assuming scatter plots summarize data instead of showing relationships
2. Which of the following is the correct syntax to create a scatter plot in pandas for columns 'height' and 'weight'?
easy
A. df.plot.scatter('weight', 'height')
B. df.scatter_plot('height', 'weight')
C. df.plot.scatter(x='height', y='weight')
D. df.plot.scatter(x=height, y=weight)
Solution
Step 1: Recall pandas scatter plot syntax
The correct method is df.plot.scatter with x and y as column names in quotes.
Step 2: Check each option
df.plot.scatter(x='height', y='weight') uses correct method and argument format. df.scatter_plot('height', 'weight') is invalid method. df.plot.scatter('weight', 'height') swaps x and y but is still valid syntax, but question asks for 'height' as x and 'weight' as y. df.plot.scatter(x=height, y=weight) uses variables without quotes causing error.
Final Answer:
df.plot.scatter(x='height', y='weight') -> Option C
Quick Check:
Correct syntax uses df.plot.scatter with x and y as strings [OK]
Hint: Use df.plot.scatter(x='col1', y='col2') with quotes [OK]
Common Mistakes:
Using method scatter_plot instead of plot.scatter
Passing column names without quotes
Swapping x and y columns unintentionally
3. Given the code:
import pandas as pd
import matplotlib.pyplot as plt
data = {'age': [25, 30, 35, 40], 'income': [50000, 60000, 65000, 70000]}
df = pd.DataFrame(data)
df.plot.scatter(x='age', y='income')
plt.show()
What will the scatter plot show?
medium
A. A bar chart of age vs income
B. An error because plt.show() is missing
C. A line plot connecting age and income
D. Points showing income increasing with age
Solution
Step 1: Understand the code
The DataFrame has 'age' and 'income' columns. The scatter plot plots 'age' on x-axis and 'income' on y-axis.
Step 2: Interpret the plot type and data
Scatter plot will show points representing each person's age and income. Income increases as age increases, so points trend upward.
Final Answer:
Points showing income increasing with age -> Option D
Quick Check:
Scatter plot shows points, not bars or lines [OK]
Hint: Scatter plots show points, not bars or lines [OK]
Common Mistakes:
Confusing scatter plot with bar or line plot
Thinking plt.show() is optional and causes error
Misreading which column is x or y
4. What is wrong with this code snippet to create a scatter plot?
df.plot.scatter(x=age, y='income')
medium
A. Scatter plots require plt.scatter, not df.plot.scatter
B. The variable age is not defined or quoted
C. plot.scatter does not exist in pandas
D. The y parameter should be numeric, not string
Solution
Step 1: Check the x parameter
The x parameter should be the column name as a string, but age is unquoted, treated as a variable.
Step 2: Verify other parameters and method
y='income' is correct as a string. plot.scatter is valid pandas method. So only x parameter is wrong.
Final Answer:
The variable age is not defined or quoted -> Option B
Quick Check:
Column names must be strings in plot.scatter [OK]
Hint: Always quote column names in plot.scatter [OK]
Common Mistakes:
Passing column names without quotes
Confusing pandas plot.scatter with matplotlib scatter
Thinking y must be numeric type, not string
5. You have a DataFrame with columns 'temperature', 'sales', and 'day'. You want to create a scatter plot showing sales vs temperature, but color points by day of the week. Which approach is correct?
hard
A. Use df.plot.scatter(x='temperature', y='sales', c=df['day'].astype('category').cat.codes)
B. Use df.plot.scatter(x='temperature', y='sales', color='day')
C. Use df.plot.scatter(x='temperature', y='sales', c='day')
D. Use df.plot.scatter(x='temperature', y='sales', c=df['day'])
Solution
Step 1: Understand color parameter in scatter plot
The c parameter expects numeric values for colors. The 'day' column is categorical (strings), so it must be converted to numeric codes.
Step 2: Check each option's color argument
Use df.plot.scatter(x='temperature', y='sales', c=df['day'].astype('category').cat.codes) converts 'day' to category codes, which is correct. Use df.plot.scatter(x='temperature', y='sales', color='day') uses color='day' which is invalid. Use df.plot.scatter(x='temperature', y='sales', c='day') passes string 'day' which is invalid. Use df.plot.scatter(x='temperature', y='sales', c=df['day']) passes categorical strings directly, causing error.
Final Answer:
Use df.plot.scatter(x='temperature', y='sales', c=df['day'].astype('category').cat.codes) -> Option A
Quick Check:
Color values must be numeric codes for categorical data [OK]
Hint: Convert categorical to numeric codes for color in scatter [OK]
Common Mistakes:
Passing categorical strings directly to color parameter
Using color='day' instead of numeric codes
Not converting categories before coloring
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.