📖 Scenario: You work as a data analyst. You want to understand how Seaborn helps create statistical visualizations easily. You have some sales data and want to see how Seaborn can show trends and summaries.
🎯 Goal: Build a simple Python program that uses Seaborn to create a statistical plot from sales data. You will create the data, set a configuration, apply Seaborn's plotting function, and display the result.
📋 What You'll Learn
Create a dictionary called sales_data with keys 'Month' and 'Sales' and given values
Create a variable called plot_kind and set it to 'line'
Use Seaborn's catplot function with kind=plot_kind to plot sales by month
Print the plot object to confirm the plot was created
💡 Why This Matters
🌍 Real World
Data analysts use Seaborn to quickly create clear visual summaries of data trends and comparisons.
💼 Career
Knowing how to use Seaborn for statistical visualizations helps in reporting insights and making data-driven decisions.
Progress0 / 4 steps
1
DATA SETUP: Create the sales data dictionary
Create a dictionary called sales_data with these exact entries: 'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May'] and 'Sales': [250, 300, 280, 350, 400].
Data Analysis Python
Hint
Use curly braces to create a dictionary. The keys are 'Month' and 'Sales'. The values are lists of months and sales numbers.
2
CONFIGURATION: Set the plot kind
Create a variable called plot_kind and set it to the string 'line'.
Data Analysis Python
Hint
Just assign the string 'line' to the variable plot_kind.
3
CORE LOGIC: Create the Seaborn plot
Import pandas as pd and seaborn as sns. Convert sales_data to a DataFrame called df. Use sns.catplot with data=df, x='Month', y='Sales', and kind=plot_kind to create a plot object called plot.
Data Analysis Python
Hint
Use pd.DataFrame() to convert the dictionary. Use sns.catplot() with the correct parameters.
4
OUTPUT: Display the plot object
Write a print statement to display the plot object.
Data Analysis Python
Hint
Use print(plot) to show the plot object details in the output.
Practice
(1/5)
1. Why do data scientists often use Seaborn to create visualizations?
easy
A. Because it automatically adds statistical information to charts
B. Because it only creates simple line charts
C. Because it requires no data preparation
D. Because it does not support customization
Solution
Step 1: Understand Seaborn's purpose
Seaborn is designed to create charts that include statistical details like confidence intervals or regression lines.
Step 2: Compare options
The other options are incorrect: Seaborn does support customization, it creates more than just simple line charts, and it does require data preparation.
Final Answer:
Because it automatically adds statistical information to charts -> Option A
Quick Check:
Seaborn adds stats to charts = D [OK]
Hint: Seaborn adds stats to charts automatically [OK]
Common Mistakes:
Thinking Seaborn only makes simple charts
Believing Seaborn needs no data prep
Assuming Seaborn can't be customized
2. Which of the following is the correct way to create a Seaborn scatter plot with a regression line?
easy
A. sns.scatterplot(data=df, x='age', y='income', fit_reg=True)
B. sns.barplot(data=df, x='age', y='income', regression=True)
C. sns.lineplot(data=df, x='age', y='income', reg=True)
D. sns.regplot(data=df, x='age', y='income')
Solution
Step 1: Identify the correct function for regression plots
The function sns.regplot is used to create scatter plots with regression lines in Seaborn.
Step 2: Check other options for correctness
sns.scatterplot(data=df, x='age', y='income', fit_reg=True) uses scatterplot which does not have fit_reg parameter. lineplot and barplot use wrong functions or parameters.
Final Answer:
sns.regplot(data=df, x='age', y='income') -> Option D
Quick Check:
Use sns.regplot for scatter + regression [OK]
Hint: Use sns.regplot for scatter with regression line [OK]
Common Mistakes:
Using scatterplot with fit_reg parameter
Confusing lineplot with regression
Using barplot for regression
3. What will the following code display?
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('tips')
sns.boxplot(x='day', y='total_bill', data=df)
plt.show()
medium
A. A box plot showing total bill distribution for each day
B. A scatter plot of total bill vs day
C. A line chart of total bill over days
D. An error because 'day' is not numeric
Solution
Step 1: Understand sns.boxplot usage
The code uses sns.boxplot with x as categorical 'day' and y as numeric 'total_bill', which creates box plots per day.
Step 2: Analyze output type
Box plots show distribution summaries, not scatter or line charts. 'day' can be categorical, so no error occurs.
Final Answer:
A box plot showing total bill distribution for each day -> Option A
Quick Check:
Boxplot with categorical x = A [OK]
Hint: Boxplot shows distribution per category [OK]
Common Mistakes:
Thinking boxplot is scatter or line chart
Assuming categorical x causes error
Confusing x and y roles
4. Identify the error in this Seaborn code:
import seaborn as sns
sns.barplot(x='category', y='value', data=mydata, stat='mean')
medium
A. The x and y parameters are reversed
B. The parameter 'stat' is invalid in sns.barplot
C. DataFrame 'mydata' must be converted to numpy array first
D. sns.barplot does not accept string column names
Solution
Step 1: Check sns.barplot parameters
The parameter 'stat' is not valid for sns.barplot; it does not exist in its API.
Step 2: Verify other options
x and y usage is correct, DataFrame input is allowed, and string column names are accepted.
Final Answer:
The parameter 'stat' is invalid in sns.barplot -> Option B
Quick Check:
Invalid parameter 'stat' in barplot = A [OK]
Hint: Check parameter names carefully in Seaborn docs [OK]
Common Mistakes:
Using non-existent parameters
Confusing parameter names
Thinking DataFrame input is invalid
5. You want to visualize the relationship between two numeric variables with a confidence interval. Which Seaborn function should you use and why?
hard
A. sns.scatterplot, because it shows points clearly but no confidence interval
B. sns.barplot, because it summarizes data with bars and confidence intervals
C. sns.regplot, because it plots points and fits a regression line with confidence interval
D. sns.histplot, because it shows distribution and confidence intervals
Solution
Step 1: Identify function for numeric relationship with confidence
sns.regplot fits a regression line and shows confidence intervals around it, ideal for two numeric variables.
Step 2: Compare other functions
Scatterplot shows points but no confidence interval. Barplot summarizes categories, not numeric relationships. Histplot shows distribution, not relationships.
Final Answer:
sns.regplot, because it plots points and fits a regression line with confidence interval -> Option C
Quick Check:
Regression plot with confidence = C [OK]
Hint: Use sns.regplot for numeric relation + confidence [OK]