Skip to main content

Documentation Index

Fetch the complete documentation index at: https://ai.tharung.in/llms.txt

Use this file to discover all available pages before exploring further.

Seaborn Complete Notes

What is Seaborn?

Seaborn is a Python data visualization library built on top of Matplotlib. It helps to:
  • Create beautiful statistical plots
  • Reduce plotting code
  • Improve plot styling automatically
  • Visualize complex datasets easily
Used in:
  • Data Science
  • Machine Learning
  • Data Analysis

Installing Seaborn

Installation

pip install seaborn

Importing Libraries

import seaborn as sns
import pandas as pd
import numpy as np

Explanation

  • sns → seaborn alias
  • pd → pandas
  • np → numpy

Loading Dataset in Seaborn

sns.get_dataset_names()

Shows available built-in datasets.
sns.get_dataset_names()

Output

List of datasets like:
['penguins', 'tips', 'iris', 'diamonds', ...]

sns.load_dataset()

Loads built-in dataset.
penguins = sns.load_dataset('penguins')

penguins.head()

Output

species island bill_length_mm ...

Explanation

Loads penguins dataset into DataFrame.

value_counts()

Counts category occurrences.
penguins['species'].value_counts()

Output

Adelie       152
Gentoo       124
Chinstrap     68

Explanation

Counts penguins species frequency.

Scatter Plot

sns.scatterplot()

Used to visualize relationship between two numerical variables.
sns.scatterplot(
    data=penguins,
    x='flipper_length_mm',
    y='body_mass_g',
    hue='island'
)

Explanation

  • x → x-axis variable
  • y → y-axis variable
  • hue → color grouping

Output

Scatter plot grouped by island colors.
Scatter

Styling in Seaborn

sns.set_style()

Changes plot background style.
sns.set_style('whitegrid')

Available Styles

  • white
  • dark
  • whitegrid
  • darkgrid
  • ticks

sns.despine()

Removes plot borders/spines.
sns.despine(left=True)

Explanation

Removes left spine.
Despine

sns.set_context()

Controls scaling of plot elements.
sns.set_context('talk')
Talk

Context Types

ContextUsage
paperSmall plots
notebookDefault
talkPresentation
posterLarge displays

Palette

palette

Controls color theme.
sns.scatterplot(
    data=penguins,
    x='flipper_length_mm',
    y='body_mass_g',
    hue='island',
    palette='Dark2'
)

Explanation

Uses Dark2 color palette.
Palette

Scatter Plot with Style and Alpha

sns.scatterplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='island',
    style='sex',
    alpha=0.5
)

Explanation

  • style → marker style changes
  • alpha → transparency
    Styleandaplpha

Strip Plot

sns.stripplot()

Shows distribution of categorical data.
sns.stripplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='island'
)

Output

Categorical scatter-like plot.
Stripplot

dodge=True

Separates hue categories.
sns.stripplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='island',
    dodge=True
)
Dodge

jitter=True

Adds random spacing.
sns.stripplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='island',
    dodge=True,
    jitter=True
)

Explanation

Avoids overlapping points.
Jitter

Swarm Plot

sns.swarmplot()

Automatically prevents overlap.
sns.swarmplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='island'
)

Output

Bee swarm arrangement of points.
Swarmplot

Histogram

sns.histplot()

Shows data distribution.
sns.histplot(
    data=penguins,
    x='body_mass_g',
    hue='sex',
    multiple='stack'
)

Explanation

  • multiple='stack' → stacked histogram
    Histogram1

Regression Plot

sns.regplot()

Adds regression trend line.
sns.regplot(
    data=penguins,
    x='body_mass_g',
    y='flipper_length_mm',
    color='green'
)

Explanation

Shows linear relationship between variables.
Regressionplo

Line Plot

sns.lineplot()

Shows continuous trends.
sns.lineplot(
    data=penguins,
    x='body_mass_g',
    y='flipper_length_mm',
    hue='island',
    style='sex'
)

Explanation

  • Different colors → islands
  • Different styles → sex
    Linelot12

Joint Plot

sns.jointplot()

Combines scatter plot + distributions.
sns.jointplot(
    data=penguins,
    x='body_mass_g',
    y='flipper_length_mm',
    kind='scatter'
)

Output

Central scatter plot with side histograms.
Joiin

KDE Joint Plot

sns.jointplot(
    data=penguins,
    x='body_mass_g',
    y='flipper_length_mm',
    hue='sex',
    kind='kde'
)

Explanation

Uses density estimation instead of scatter points.
Kdeplot

Bar Plot

sns.barplot()

Shows average values by category.
sns.barplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='sex',
    palette=['red','blue']
)

Explanation

Compares mean body mass.
Barplot

Count Plot

sns.countplot()

Counts categorical occurrences.
sns.countplot(
    data=penguins,
    x='species'
)

Output

Bar chart of species counts.
Countplot

Box Plot

sns.boxplot()

Shows:
  • median
  • quartiles
  • outliers
sns.boxplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='sex'
)

Output

Distribution comparison across species.
Boxplot2

Violin Plot

sns.violinplot()

Combines boxplot + density plot.
sns.violinplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='sex'
)

Explanation

Width shows density of values.
Violin

Split Violin Plot

sns.violinplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='sex',
    split=True
)

Explanation

Male and female shown in one violin.
Violinsplit

Inner Quartiles

sns.violinplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    hue='sex',
    split=True,
    inner='quartile'
)

Explanation

Shows quartile lines inside violin.
Violinquat

Swarm + Violin Combined

sns.violinplot(data=penguins,
               x='species',
               y='body_mass_g')

sns.swarmplot(
    data=penguins,
    x='species',
    y='body_mass_g',
    color='black',
    size=3
)

Explanation

Combines density + individual points.
Violin Swarm

KDE Plot

sns.kdeplot()

Smooth probability density curve.
sns.kdeplot(
    data=penguins,
    x='body_mass_g',
    hue='species',
    fill=True
)

Explanation

  • Smooth histogram alternative
  • fill=True fills area
    Kdeplot1

Heatmap

sns.heatmap()

Displays matrix with colors.
columns = [
    "bill_length_mm",
    "bill_depth_mm",
    "flipper_length_mm",
    "body_mass_g"
]

penguins_corr = penguins[columns].corr()

sns.heatmap(
    data=penguins_corr,
    annot=True,
    vmin=-0.2
)

Explanation

  • corr() → correlation matrix
  • annot=True → show values
  • vmin → minimum color scale

Output

Correlation heatmap.
Heatmap

Rug Plot

sns.rugplot()

Shows individual data points as ticks.
sns.rugplot(
    data=penguins,
    x='body_mass_g',
    hue='species',
    palette='Set2'
)

Output

Small tick marks along axis.
Rugplot

Pair Plot

sns.pairplot()

Creates pairwise plots automatically.
sns.pairplot(
    data=penguins,
    hue='species'
)

Output

Grid of scatter plots and histograms.
Pairplot1

Pair Plot with Histogram

sns.pairplot(
    data=penguins,
    hue='species',
    diag_kind='hist'
)

Explanation

Diagonal uses histograms instead of KDE.
Pairhisto

Pair Grid

sns.PairGrid()

Custom subplot grid.
g = sns.PairGrid(
    data=penguins,
    hue='sex',
    palette='Set2'
)

g.map_upper(sns.scatterplot)
g.map_lower(sns.kdeplot)
g.map_diag(sns.histplot)

g.add_legend()

Explanation

  • map_upper() → upper triangle plots
  • map_lower() → lower triangle plots
  • map_diag() → diagonal plots

Output

Fully customized pairwise visualization grid.
Pair Subplot

Seaborn Plot Summary

PlotPurpose
scatterplotRelationship between variables
stripplotCategorical spread
swarmplotNon-overlapping stripplot
histplotDistribution
regplotRegression trend
lineplotContinuous trends
jointplotCombined distributions
barplotAverage comparison
countplotFrequency count
boxplotOutlier detection
violinplotDensity + boxplot
kdeplotSmooth distribution
heatmapCorrelation matrix
rugplotIndividual data ticks
pairplotAutomatic pair relationships
PairGridCustom pairwise plots

Important Seaborn Functions

FunctionPurpose
set_style()Plot style
set_context()Scaling
despine()Remove borders
scatterplot()Scatter plot
histplot()Histogram
regplot()Regression line
lineplot()Line graph
barplot()Bar chart
countplot()Count categories
boxplot()Quartiles & outliers
violinplot()Density visualization
heatmap()Matrix heatmap
pairplot()Pairwise analysis

Seaborn Helps

Seaborn helps to:
  • Create attractive statistical plots
  • Analyze distributions
  • Detect patterns
  • Understand correlations
  • Visualize categorical and numerical data easily
Advantages:
  • Less code
  • Better styling
  • Easy integration with Pandas
  • Built on Matplotlib