What is Seaborn, how to install and use
Seaborn basics
3 min read
Published Oct 7 2025
Guide Sections
Guide Comments
Seaborn Official Documentation
This guide only goes through the basics. Seaborn is capable of much more, visit the official site for more details.
Seaborn is a Python data visualisation library built on top of Matplotlib.
It provides a high-level interface for creating beautiful and informative statistical graphics with minimal code.
How does it differ from Matplotlib
Matplotlib:
- You manually provide raw data for every element (bars, lines, markers, etc.).
- No automatic statistical handling — if you want something like:
- regression lines,
- confidence intervals,
- grouped summaries —
you must compute them yourself (using NumPy, SciPy, or Pandas) and plot them manually.
- Styling defaults are basic, so you often spend time adjusting colours, grids, legends, and layouts.
- Maximum control: you can tweak every visual element, which makes it perfect for highly customized or publication-grade figures.
Seaborn:
- Built on top of Matplotlib — everything you do in Seaborn ultimately uses Matplotlib under the hood.
- DataFrame-native: you pass in a Pandas DataFrame and just specify column names for variables (
x
,y
,hue
, etc.) — no manual slicing or array management. - Smart defaults: it automatically applies attractive styles, consistent colour palettes, and clean layouts.
- Statistical intelligence built-in: things like regression lines, confidence intervals, or data aggregation are automatic or can be toggled with simple parameters (e.g.
sns.lmplot()
,sns.barplot()
). - Still customisable: after plotting with Seaborn, you can further modify the figure using Matplotlib commands (titles, annotations, subplots, etc.).
Categories of Seaborn Charts
1. Relational Plots (relationships between variables) - used to visualise how variables relate to each other.
sns.scatterplot()
– scatter plotssns.lineplot()
– line charts (with confidence bands)sns.relplot()
– wrapper to create multiple relational plots (facet grids)
2. Categorical Plots (comparing groups) - used to compare values across discrete categories.
sns.barplot()
– bar plot with confidence intervalssns.countplot()
– bar plot for countssns.boxplot()
– box-and-whisker plotsns.violinplot()
– box + density shapesns.stripplot()
– jittered scatter of observationssns.swarmplot()
– non-overlapping scatter pointssns.catplot()
– a flexible “master” function to create any of the above with faceting
3. Distribution Plots (data spread and shape) - used to show how values are distributed.
sns.histplot()
– histogramsns.kdeplot()
– kernel density estimate (smoothed histogram)sns.ecdfplot()
– empirical cumulative distributionsns.displot()
– flexible wrapper for hist/KDE plotssns.rugplot()
– tick marks for raw data points
4. Regression & Statistical Relationship Plots - show relationships with regression fitting.
sns.regplot()
– scatter + regression linesns.lmplot()
– regression across subsets (faceting, colour, etc.)
5. Matrix & Heatmap Plots - used for showing tabular or correlation data.
sns.heatmap()
– visualises 2D matrices or correlation matricessns.clustermap()
– heatmap with hierarchical clustering
6. Multi-Variable (Grid) Plots - for visualising multi-dimensional relationships.
sns.pairplot()
– scatterplot matrix of all variable pairssns.jointplot()
– scatter + histograms on marginssns.PairGrid()
/sns.FacetGrid()
– build custom multi-panel grids
Installation
Importing the library
By convention, it’s always imported as sns
.
Sample datasets
Seaborn comes with a collection of built-in example datasets that are very handy for learning, testing, and demoing plots.
View available datasets:
Load a dataset by name:
Loads the dataset called tips, replace tips with any other of the available dataset names.