Seaborn Heatmap using sns.heatmap() with Examples for Beginners

Introduction

In this article, we’ll go tutorial of Seaborn Heatmap function sns.heatmap() that will be useful for your machine learning or data science projects. We will learn about its syntax and see various examples of creating Heatmap using the Seaborn library for easy understanding for beginners.

Seaborn Heatmap Tutorial

Heatmap is a visualization that displays data in a color encoded matrix. The intensity of color varies based on the value of the attribute represented in the visualization.

In Seaborn, the heatmap is generated by using the heatmap() function, the syntax of the same is explained below.

Syntax for Seaborn Heatmap Function : heatmap()

seaborn.heatmap(data, *, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt=’.2g’, annot_kws=None, linewidths=0, linecolor=’white’, cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels=’auto’, yticklabels=’auto’, mask=None, ax=None, kwargs)**

Parameters Information

  • data : rectangular dataset
    Here we provide the data for plotting the visualization.
  • vmin, vmax : floats, optional
    This parameter is used for for anchoring colormap.
  • cmap : matplotlib colormap name or object, or list of colors, optional
    The cmap parameter is used for mapping data values.
  • center : float, optional
    This parameter helps in changing the center position of heatmap.
  • annot : bool or rectangular dataset, optional
    This helps in annotating the heatmap with values if set to True, otherwise values are not provided.
  • linewidths : float, optional
    We can set the width of the lines that divide the cells
  • linecolor : color, optional
    This helps in setting the color of each line that divides heatmap cells.
  • cbar : bool, optional
    With this parameter, we can either set the color bar or not.
  • square : bool, optional
    Through this parameter, we can ensure that each cell is made up of equal square-shaped cell.
  • xticklabels, yticklabels : “auto”, bool, list-like, or int, optional
    Here we can plot the column names in the visualization, if passed as True.
  • ax : matplotlib Axes, optional
    Here we specify the axes on which the plot is drawn.

Following this, we’ll look at different examples of creating heatmap using the seaborn library.

1st Example – Simple Seaborn Heatmap

In this 1st example, we will generate the data randomly using the NumPy array and then pass this data to the heatmap() function.

First of all, we have to import the NumPy library, seaborn library, and also set the theme using the seaborn library.

In [1]:
import numpy as np

np.random.seed(0)

import seaborn as sns 

sns.set_theme()

uniform_data = np.random.rand(15, 20)

ax = sns.heatmap(uniform_data, cmap="YlGnBu")
Output:
Seaborn Heatmap - Example 1

2nd Example – Applying Color Bar Range

In this example, we are using the same data as in 1st example, but this time we pass the vmin and vmax parameters to set the color bar range. We have restricted the color bar range from 0 to 1.

In [2]:
ax = sns.heatmap(uniform_data, vmin=0, vmax=1, cmap="Greens")
Output:
Seaborn Heatmap - Example 2

3rd Example – Plotting heatmap with Diverging Colormap

The 3rd example showcases the implementation of a heatmap that has diverging colormap. This means the center of the data is at ‘0’. As we can see in the visualization, the values above and below ‘0’ have different shades of color.

In [3]:
normal_data = np.random.randn(16, 18)

ax = sns.heatmap(normal_data, center=0, cmap="PiYG")
Output:
Seaborn Heatmap - Example 3

4th Example – Labelling the rows and columns of heatmap

The current example will use one of the in-built datasets of seaborn known as flights dataset. We load this dataset and then we create a pivot table using three columns of the dataset.

After this, we are using sns.heatmap() function to plot the heatmap.

In [4]:
flights = sns.load_dataset("flights")

flights = flights.pivot("month", "year", "passengers")

ax = sns.heatmap(flights, cmap="BuPu")
Output:
sns.heatmap() - Example 4

5th Example – Annotating the Heatmap

In this example, we look at the way through which annotation of cells can be done with values of each cell displayed in it. Along with this, rows and columns are also labeled.

For annotation, we are using fmt parameter. With the help of this parameter, we can not just add numeric values but also textual strings. We also have the option of using annot parameter but it does not allow to add strings.

We can also alter the width of lines dividing each cell in the heatmap.

In [5]:
ax = sns.heatmap(flights, annot=True, fmt="d", cmap="YlGnBu", linewidths=.6)
Output:
sns.heatmap() - Example 5

6th Example – Heatmap without labels

This example shows how we can build a heatmap without rows. Here we have generated random data using NumPy’s random function.

For creating a heatmap without labels, we have to mark xticklabels and yticklabels parameters as False.

In this example, we pass False in yticklabels parameter for plotting heatmap without labels on the y-axis.

In [6]:
data = np.random.randn(40, 25)

ax = sns.heatmap(data, xticklabels=2, yticklabels=False)
Output:
sns.heatmap() - Example 6

7th Example – Diagonal Heatmap with Masking in Seaborn

This last example will show how we can mask the heatmap to suppress duplicate part of the heatmap. First of all, we build correlation coefficient with the help of the NumPy random function. After this, we use zeros_like function of NumPy for creating a mask.

Then, we create a triangular mask with the help of triu_indices_from and pass True for building the same.

At last, we use the subplots function for specifying the size of the plot. We pass our custom created mask to mask parameter. Also, the square parameter is used for creating square cells.

In [7]:
import matplotlib as plt

corr = np.corrcoef(np.random.randn(12, 150))

mask = np.zeros_like(corr)

mask[np.triu_indices_from(mask)] = True

with sns.axes_style("white"):

    f, ax = plt.pyplot.subplots(figsize=(8, 6))

    ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True, cmap="coolwarm")
Output:
sns.heatmap - Example 7

Conclusion

This is the end of this seaborn tutorial, in this, we looked at the syntax of the seaborn heatmap function and different examples. We also learned about the parameters of sns.heatmap() function that is used for various purposes while plotting heatmaps.

Reference: https://seaborn.pydata.org/

  • Palash Sharma

    I am Palash Sharma, an undergraduate student who loves to explore and garner in-depth knowledge in the fields like Artificial Intelligence and Machine Learning. I am captivated by the wonders these fields have produced with their novel implementations. With this, I have a desire to share my knowledge with others in all my capacity.

Follow Us

Leave a Reply

Your email address will not be published. Required fields are marked *