Creating Colorbars with Matplotlib

PythonPythonBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

In this tutorial, we will learn how to use the matplotlib library to create colorbars for visualizations. Colorbars are a useful tool to help interpret visualizations, by providing a color scale that corresponds to the data being plotted. We will use matplotlib to create colorbars for visualizations with both positive and negative data values.

VM Tips

After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.

Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.

If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("`Python`")) -.-> python/BasicConceptsGroup(["`Basic Concepts`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/BasicConceptsGroup(["`Basic Concepts`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/PlottingDataGroup(["`Plotting Data`"]) python(("`Python`")) -.-> python/ControlFlowGroup(["`Control Flow`"]) python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"]) python(("`Python`")) -.-> python/FileHandlingGroup(["`File Handling`"]) python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"]) python/BasicConceptsGroup -.-> python/comments("`Comments`") matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("`Importing Matplotlib`") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("`Understanding Figures and Axes`") matplotlib/PlottingDataGroup -.-> matplotlib/heatmaps("`Heatmaps`") python/ControlFlowGroup -.-> python/for_loops("`For Loops`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`") python/ModulesandPackagesGroup -.-> python/standard_libraries("`Common Standard Libraries`") python/FileHandlingGroup -.-> python/file_reading_writing("`Reading and Writing Files`") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("`Numerical Computing`") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("`Data Visualization`") subgraph Lab Skills python/comments -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} matplotlib/importing_matplotlib -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} matplotlib/figures_axes -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} matplotlib/heatmaps -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/for_loops -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/lists -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/tuples -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/importing_modules -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/standard_libraries -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/file_reading_writing -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/numerical_computing -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} python/data_visualization -.-> lab-48608{{"`Creating Colorbars with Matplotlib`"}} end

Import necessary libraries

We begin by importing the necessary libraries: numpy and matplotlib.pyplot.

import matplotlib.pyplot as plt
import numpy as np

Generate Data

We generate some sample data to plot, using numpy's mgrid function.

## setup some generic data
N = 37
x, y = np.mgrid[:N, :N]
Z = (np.cos(x*0.2) + np.sin(y*0.3))

Create Positive Data Plot and Colorbar

We create a plot of the positive data, and add a colorbar to the plot using the colorbar function.

## plot just the positive data and save the
## color "mappable" object returned by ax1.imshow
pos = plt.imshow(Zpos, cmap='Blues', interpolation='none')

## add the colorbar using the figure's method,
## telling which mappable we're talking about and
## which axes object it should be near
plt.colorbar(pos)

Create Negative Data Plot and Colorbar

We create a plot of the negative data, and add a colorbar to the plot using the colorbar function. This time, we specify the location of the colorbar, as well as the anchor and shrink parameters.

## repeat everything above for the negative data
## you can specify location, anchor and shrink the colorbar
neg = plt.imshow(Zneg, cmap='Reds_r', interpolation='none')
plt.colorbar(neg, location='right', anchor=(0, 0.3), shrink=0.7)

Create Plot with Positive and Negative Data

We create a plot with both positive and negative data, and add a colorbar to the plot using the colorbar function. This time, we specify the minimum and maximum values for the colorbar using the vmin and vmax parameters.

## Plot both positive and negative values between +/- 1.2
pos_neg_clipped = plt.imshow(Z, cmap='RdBu', vmin=-1.2, vmax=1.2,
                             interpolation='none')

## Add minorticks on the colorbar to make it easy to read the
## values off the colorbar.
cbar = plt.colorbar(pos_neg_clipped, extend='both')
cbar.minorticks_on()

Summary

In this tutorial, we learned how to use the matplotlib library to create colorbars for visualizations. We covered how to create colorbars for visualizations with both positive and negative data values. With these tools, we can create more informative and useful visualizations.