You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Seaborn is a Python data visualisation library built on top of Matplotlib. It provides a high-level interface for drawing attractive, informative statistical graphics with less code. Seaborn integrates closely with Pandas DataFrames and includes built-in themes, colour palettes, and functions for common statistical visualisations.
pip install seaborn
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# Set the default theme
sns.set_theme(style="whitegrid")
| Feature | Matplotlib | Seaborn |
|---|---|---|
| Level of abstraction | Low-level — you control every element | High-level — sensible defaults |
| Code verbosity | More code for styled plots | Less code for attractive plots |
| Statistical features | Manual | Built-in (confidence intervals, regression lines) |
| DataFrame integration | Requires manual column access | Native support for column names |
| Customisation | Unlimited | Customise via Matplotlib underneath |
Seaborn comes with several built-in datasets for practice:
# List available datasets
print(sns.get_dataset_names())
# Load a dataset
tips = sns.load_dataset("tips")
print(tips.head())
| Dataset | Description |
|---|---|
tips | Restaurant tipping data |
flights | Monthly airline passenger numbers |
iris | Classic iris flower measurements |
penguins | Palmer penguins body measurements |
titanic | Titanic passenger survival data |
diamonds | Diamond pricing and attributes |
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
# Histogram
sns.histplot(data=tips, x="total_bill", bins=20, ax=axes[0])
axes[0].set_title("Histogram")
# KDE (Kernel Density Estimate)
sns.kdeplot(data=tips, x="total_bill", fill=True, ax=axes[1])
axes[1].set_title("KDE Plot")
# Combined
sns.histplot(data=tips, x="total_bill", kde=True, ax=axes[2])
axes[2].set_title("Histogram + KDE")
plt.tight_layout()
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))
sns.boxplot(data=tips, x="day", y="total_bill",
palette="Set2", ax=ax1)
ax1.set_title("Box Plot: Total Bill by Day")
sns.violinplot(data=tips, x="day", y="total_bill",
palette="Set2", ax=ax2)
ax2.set_title("Violin Plot: Total Bill by Day")
plt.tight_layout()
plt.show()
These show individual data points — useful for small datasets.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))
sns.stripplot(data=tips, x="day", y="total_bill",
jitter=True, alpha=0.6, ax=ax1)
ax1.set_title("Strip Plot")
sns.swarmplot(data=tips, x="day", y="total_bill",
palette="Set2", ax=ax2)
ax2.set_title("Swarm Plot")
plt.tight_layout()
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
fig, ax = plt.subplots(figsize=(8, 6))
sns.scatterplot(data=tips, x="total_bill", y="tip",
hue="time", size="size", sizes=(20, 200),
palette="Set1", ax=ax)
ax.set_title("Tips vs Total Bill")
plt.tight_layout()
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.