How to Create Python Heatmap with Seaborn? [Comprehensive Explanation]
Updated on Jan 11, 2024 | 10 min read | 8.5k views
Share:
For working professionals
For fresh graduates
More
Updated on Jan 11, 2024 | 10 min read | 8.5k views
Share:
Table of Contents
Businesses in the Age of Big Data are overwhelmed by large volumes of data on a day-to-day basis. However, it is not the sheer amount of relevant data but what is done with the data that matters. Hence, Big Data needs to be analyzed to gain insights that will ultimately dictate better decisions and influence strategic business moves.
Still, it is not enough to analyze data and leave it there. The next step is data visualization that presents the data in a visual format to see and understand patterns, trends, and outliers in data. Heatmap in Python is one of the many data visualization techniques.
Data visualization refers to the graphical representation of data and may include graphs, charts, maps, and other visual elements. It is highly critical for analyzing humongous amounts of information and making data-driven decisions.
This article will walk you through the concept of a heatmap in Python and how to create one using Seaborn.
A heatmap in Python is a data visualization technique where colours represent how a value of interest changes with the values of two other variables. It is a two-dimensional graphical representation of data with values encoded in colours, thereby giving a simplified, insightful, and visually appealing view of information. The image below is a simplified representation of a heatmap.
Typically, a heatmap is a data table with rows and columns representing different sets of categories. Each cell in the table contains a logical or numerical value that determines the colour of the cell based on a given colour palette. Thus, heat maps use colours to emphasize the relationship between data values that would be otherwise challenging to understand if arranged in a regular table using raw numbers.
Heatmaps find applications in several real-world scenarios. For instance, consider the heat map below. It is a stock index heatmap that identifies prevailing trends in the stock market. The heatmap uses a cold-to-hot colour scheme to show which stocks are bearish and which are bullish. The former is represented using the colour red, while the latter is depicted in green.
Heatmaps find use in several other areas. Some examples include website heatmaps, geographical heatmaps, and sports heatmaps. For instance, you could use a heatmap to understand how rainfall varies according to the month of the year across a set of cities. Heatmaps also come extremely handy to study human behaviour.
A correlation heatmap is a two-dimensional matrix showing the correlation between two distinct variables. The rows of the table show the values of the first variable, whereas the second variable appears as the columns. Like a regular heatmap, a correlation heatmap also comes with a colour bar to read and understand the data.
The colour scheme used is such that one end of the colour scheme represents the low-value data points and the other end the high-value data points. Hence, correlation heatmaps are ideal for data analysis since they present patterns in an easily readable form while also highlighting the variation in the data.
Given below is a classic representation of a correlation heatmap.
Seaborn is a Python library used for data visualization and is based on matplotlib. It provides an informative and visually attractive medium to present data in a statistical graph format. In a heatmap created using seaborn, a colour palette portrays the variation in related data. If you are a beginner and would like to gain expertise in data science, check out our data science courses.
Check out all trending Python tutorial concepts in 2024.
The following steps give a rough outline of how to create a simple heatmap in Python:
Now, let us show you how seaborn, along with matplotlib and pandas, can be used to generate a heatmap.
In this example, we will construct a seaborn heatmap in Python for 30 pharmaceutical company stocks. The resulting heatmap will show the stock symbols and their respective single-day percentage price change. We will begin by collecting the market data on pharma stocks and create a CSV (Comma-separated Value) file consisting of the stock symbols and their corresponding percentage price change in the first two columns of the said CSV file.
Since we are working with 30 pharma companies, we will construct a heatmap matrix comprising 6 rows and 5 columns. In addition, we want the heatmap to depict the percentage price change in descending order. So, we will arrange the stocks in the CSV file in descending order and add two more columns to indicate the position of each stock on the X and Y axes of the seaborn heatmap.
The dataset is read using the read_csv function from pandas. Further, we use the print statement to visualise the first 10 rows.
Keeping the 6 x 5 matrix in mind, we will create an n-dimensional array for the “Symbol” and “Change” columns.
From the given data frame object “df,” the pivot function creates a new derived table. The pivot function takes three arguments – index, columns, and values. The values of the cells of the new table are taken from the “Change” column.
The next step is to create an array for annotating the seaborn heatmap. For this, we will call the flatten method on the arrays “percentage” and “symbol” to flatten a Python list of lists in one line. Further, the zip function zips a list in Python. We will run a Python for loop and use the format function to format the stock symbols and percentage price change values as needed.
upGrad’s Exclusive Data Science Webinar for you –
Transformation & Opportunities in Analytics & Insights
In this step, we will create an empty matplotlib plot and define the figure’s size. In addition, we will add the title of the plot, set the font size of the title, and fix its distance from the plot by using the set_position method. Finally, since we only want to display the stock symbols and their corresponding single-day percentage price change, we will hide the ticks for the X and Y axes and remove the axes from the plot.
In the last step, we will use the heatmap function from the seaborn Python package to create the heatmap. The heatmap function of the seaborn Python package takes the following set of arguments:
It is a two-dimensional dataset that can be coerced into an array. Given a Pandas DataFrame, the rows and columns will be labeled using the index/column information.
It is an array of the same shape as the data and annotates the heatmap.
It is a matplotlib object or colourmap name and maps the data values to the colour space.
It is a string formatting code used when adding annotations.
It sets the width of the lines that divide each cell.
The final output of the seaborn heatmap for the chosen pharma companies will look like this:
The Professional Certificate Program in Data Science for Business Decision Making is a rigorous, 8-months online program focusing on data science and machine learning concepts with particular emphasis on their real-world business applications. The program is categorically designed for managers and working professionals who want to develop the practical knowledge and skills of data science that will help them take strategic and data-driven business decisions.
Here are some course highlights:
Sign up with upGrad and hone your Python heatmap skills for all your data visualisation needs!
Statisticians and data analysts use a plethora of tools and techniques to sort the collated data and present them in an easily understandable and user-friendly manner. In this regard, heatmaps as a data visualization technique have helped businesses across all sectors to visualize and understand data better.
To sum up, heatmaps have been used widely and are still used as one of the statistical and analytical tools of choice. This is because they offer a visually appealing and accessible mode of data presentation, are readily understandable, versatile, adaptable, and do away with the tedious steps of traditional data analysis and interpretation processes by presenting all the values in a single frame.
Get Free Consultation
By submitting, I accept the T&C and
Privacy Policy
Start Your Career in Data Science Today
Top Resources