Data VisualizationNot Started
seaborn vs matplotlib
When to use seaborn's high-level API for statistical visualizations
0%
Knowledge0%
Learn & DrillFluency0%
Drill & SpeedRetention0%
Mastery & ReviewConfidence0%
All modesFree tier: read the explanation here. Upgrade to Pro for Drills, Speed challenges & Mastery badges.
UpgradeKnowledge
Fluency
Retention
Knowledge Debt detected
You can study this freely — but your score may plateau if these foundations have gaps. The Mastery badge requires them to be solid.
Explanation
seaborn is built on top of matplotlib and provides a higher-level interface for statistical plots — less code, better defaults.
python
import seaborn as sns
import matplotlib.pyplot as plt
# Load a built-in dataset
tips = sns.load_dataset('tips')
# Scatter with regression line
sns.scatterplot(data=tips, x='total_bill', y='tip', hue='sex')
# Distribution
sns.histplot(data=tips, x='total_bill', hue='sex', kde=True)
# Box plot
sns.boxplot(data=tips, x='day', y='total_bill')
# Correlation heatmap
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')Key seaborn advantages:
hue=automatically splits and colors by a category- Built-in statistical estimates (confidence intervals, regression lines)
- Much better default aesthetics
- Works directly with pandas DataFrames
When to use each:
- seaborn → statistical exploration, quick beautiful plots
- matplotlib → fine-grained control, custom layouts, animation
seaborn plots return matplotlib Axes, so you can still customize with ax.set_title() etc.
Examples
Correlation heatmap
annot=True shows the correlation values inside each cell
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# Create sample data
df = pd.DataFrame(np.random.rand(50,4), columns=['A','B','C','D'])
df['B'] = df['A'] * 0.9 + np.random.rand(50)*0.1 # correlated with A
fig, ax = plt.subplots(figsize=(6,5))
sns.heatmap(df.corr(), annot=True, fmt='.2f', cmap='coolwarm', ax=ax)
ax.set_title('Correlation Matrix')
plt.show()How well did you understand this?