Distribution plots help us see how data values spread out or cluster. They make it easy to understand patterns in numbers.
To check how exam scores are spread among students.
To see the distribution of daily temperatures in a city.
To understand customer ages in a store.
To find out if data is mostly low, high, or balanced.
To compare two groups’ data shapes visually.
Syntax
Data Analysis Python
import seaborn as sns
sns.histplot(data, bins=number_of_bins, kde=True)
sns.kdeplot(data, shade=True)
histplot draws bars showing counts in ranges (bins).
kdeplot draws a smooth curve estimating data density.
Examples
This shows how many times each number appears using bars.
Data Analysis Python
import seaborn as sns
import matplotlib.pyplot as plt
# Simple histogram
sns.histplot([1, 2, 2, 3, 3, 3, 4])
plt.show()
Bars show counts and the smooth line shows data density.
Data Analysis Python
import seaborn as sns
import matplotlib.pyplot as plt
# Histogram with KDE curve
sns.histplot([1, 2, 2, 3, 3, 3, 4], kde=True)
plt.show()
Shows a smooth curve estimating where data points cluster.
Data Analysis Python
import seaborn as sns
import matplotlib.pyplot as plt
# KDE plot only
sns.kdeplot([1, 2, 2, 3, 3, 3, 4], shade=True)
plt.show()
Sample Program
This program makes 1000 random numbers centered at 0. It then shows a histogram with bars and a smooth KDE curve to see the data spread.
Data Analysis Python
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Create sample data: 1000 random numbers from normal distribution
data = np.random.normal(loc=0, scale=1, size=1000)
# Plot histogram with KDE
sns.histplot(data, bins=30, kde=True)
plt.title('Histogram with KDE')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
OutputSuccess
Important Notes
Use bins to control how many bars appear in the histogram.
Adding kde=True in histplot overlays the smooth curve.
shade=True in kdeplot fills the area under the curve for better visibility.
Summary
Distribution plots show how data values spread or cluster.
histplot uses bars; kdeplot uses smooth curves.
They help understand data shape and compare groups visually.
Practice
(1/5)
1. What does the histplot function primarily display in a distribution plot?
easy
A. Bars showing the frequency of data values in bins
B. A smooth curve estimating the data density
C. Scatter points representing individual data values
D. A line chart showing data over time
Solution
Step 1: Understand the purpose of histplot
The histplot function creates a histogram, which groups data into bins and shows how many values fall into each bin using bars.
Step 2: Differentiate from kdeplot
Unlike kdeplot which draws a smooth curve, histplot uses bars to represent frequency counts.
Final Answer:
Bars showing the frequency of data values in bins -> Option A
2. Which of the following is the correct way to import seaborn and plot a histogram of a list data using histplot?
easy
A. import seaborn as sb
sb.kdeplot(data)
B. import seaborn
seaborn.plot_hist(data)
C. from seaborn import histplot
kdeplot(data)
D. import seaborn as sns
sns.histplot(data)
Solution
Step 1: Check the standard import for seaborn
The common alias for seaborn is sns, so import seaborn as sns is correct.
Step 2: Verify the function call for histogram
The function to plot a histogram is histplot, so sns.histplot(data) is the correct syntax.
Final Answer:
import seaborn as sns
sns.histplot(data) -> Option D
Quick Check:
Standard import + histplot call = import seaborn as sns
sns.histplot(data) [OK]
Hint: Use 'import seaborn as sns' and call sns.histplot(data) [OK]
Common Mistakes:
Using wrong alias like sb
Calling non-existent seaborn.plot_hist
Importing histplot directly from seaborn
3. What will the following code output?
import seaborn as sns
import matplotlib.pyplot as plt
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
sns.kdeplot(data)
plt.show()
medium
A. A smooth curve estimating the data density
B. A bar chart showing counts of each number
C. A scatter plot of the data points
D. An error because kdeplot needs a DataFrame
Solution
Step 1: Understand what sns.kdeplot does
The kdeplot function draws a smooth curve estimating the probability density of the data.
Step 2: Check the input data type
The input is a list of numbers, which is valid for kdeplot, so no error occurs.
Final Answer:
A smooth curve estimating the data density -> Option A
Quick Check:
kdeplot = smooth density curve [OK]
Hint: kdeplot draws smooth curves, not bars or points [OK]
Common Mistakes:
Expecting bars instead of curve
Thinking kdeplot requires DataFrame input
Confusing kdeplot with scatter plot
4. The following code does not display a plot. What is the most likely cause?
import seaborn as sns
data = [1, 2, 3, 4, 5]
sns.histplot(data, kde=True)
medium
A. Data must be a DataFrame, not a list
B. The parameter 'kde' is not valid for histplot
C. Missing import of matplotlib.pyplot to show the plot
D. histplot cannot plot numeric data
Solution
Step 1: Check if plot display is handled
The code calls sns.histplot but does not call plt.show() to display the plot.
Step 2: Identify missing import and display call
Without importing matplotlib.pyplot and calling plt.show(), the plot won't appear, which may be mistaken as an error.
Final Answer:
Missing import of matplotlib.pyplot to show the plot -> Option C
Quick Check:
Need plt.show() to display plot [OK]
Hint: Always import matplotlib.pyplot and call plt.show() to display plots [OK]
Common Mistakes:
Assuming 'kde' param is invalid for histplot
Thinking list data causes error
Believing histplot can't plot numeric data
5. You have two groups of data: group1 = [1,2,2,3,4] and group2 = [3,4,4,5,6]. You want to compare their distributions on the same plot using seaborn. Which code correctly overlays their KDE plots with different colors?
hard
A. import seaborn as sns
import matplotlib.pyplot as plt
data = group1 + group2
labels = ['group1', 'group2']
sns.kdeplot(data, hue=labels)
plt.show()
B. import seaborn as sns
import matplotlib.pyplot as plt
sns.kdeplot(group1, color='blue')
sns.kdeplot(group2, color='red')
plt.show()
C. import seaborn as sns
sns.histplot(group1, color='blue')
sns.histplot(group2, color='red')
D. import seaborn as sns
sns.kdeplot(group1)
sns.kdeplot(group2)
plt.show()
Solution
Step 1: Understand how to overlay KDE plots
Calling sns.kdeplot twice with different data and colors overlays the KDE curves on the same plot.
Step 2: Check for plot display
Importing matplotlib.pyplot and calling plt.show() ensures the plot appears.
Step 3: Evaluate other options
import seaborn as sns
import matplotlib.pyplot as plt
data = group1 + group2
labels = ['group1']*len(group1) + ['group2']*len(group2)
sns.kdeplot(data, hue=labels)
plt.show()
uses hue incorrectly on a list without DataFrame;
import seaborn as sns
sns.histplot(group1, color='blue')
sns.histplot(group2, color='red')
uses histplot, not KDE;
import seaborn as sns
sns.kdeplot(group1)
sns.kdeplot(group2)
plt.show()
misses import matplotlib.pyplot as plt.
Final Answer:
import seaborn as sns
import matplotlib.pyplot as plt
sns.kdeplot(group1, color='blue')
sns.kdeplot(group2, color='red')
plt.show() -> Option B
Quick Check:
Overlay KDE with sns.kdeplot twice + plt.show() [OK]
Hint: Call sns.kdeplot twice with colors, then plt.show() [OK]
Common Mistakes:
Using hue on plain lists without DataFrame
Forgetting plt.show() to display plot
Mixing histplot with kdeplot for smooth curves
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.