Interactive Colormap Adjustment

PythonPythonBeginner
Practice Now

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

Introduction

In this lab, you will learn how to use Matplotlib to interactively adjust the range of colormapping on an image using a colorbar. You will use the zoom and pan mode to adjust the vmin and vmax of the norm. Zooming using the right mouse button will expand the vmin and vmax proportionally to the selected region. When panning, the vmin and vmax of the norm are both shifted according to the direction of movement. You can also use the Home/Back/Forward buttons to get back to a previous state.

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 matplotlib(("`Matplotlib`")) -.-> matplotlib/BasicConceptsGroup(["`Basic Concepts`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/PlottingDataGroup(["`Plotting Data`"]) python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"]) python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("`Importing Matplotlib`") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("`Understanding Figures and Axes`") matplotlib/PlottingDataGroup -.-> matplotlib/heatmaps("`Heatmaps`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("`Numerical Computing`") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("`Data Visualization`") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} matplotlib/figures_axes -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} matplotlib/heatmaps -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} python/lists -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} python/tuples -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} python/importing_modules -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} python/numerical_computing -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} python/data_visualization -.-> lab-48610{{"`Interactive Colormap Adjustment`"}} end

Import Required Libraries

To get started with this lab, you need to import the required libraries. In this lab, we will use matplotlib.pyplot and numpy libraries.

import matplotlib.pyplot as plt
import numpy as np

Generate Data

Next, you will generate some sample data. In this lab, we will generate a two-dimensional sine wave.

t = np.linspace(0, 2 * np.pi, 1024)
data2d = np.sin(t)[:, np.newaxis] * np.cos(t)[np.newaxis, :]

Create the Plot

Now that you have generated the data, you will create the plot using imshow() function.

fig, ax = plt.subplots()
im = ax.imshow(data2d)
ax.set_title('Pan on the colorbar to shift the color mapping\n'
             'Zoom on the colorbar to scale the color mapping')

Add the Colorbar

To interactively adjust the colormap, you need to add a colorbar to the plot using colorbar() function.

fig.colorbar(im, ax=ax, label='Interactive colorbar')

Adjust the Colormap

Now, you can interactively adjust the range of colormapping on the image using the colorbar. You can zoom or pan by clicking inside the colorbar. When zooming, the bounding box of the zoom region defines the new vmin and vmax of the norm. Zooming using the right mouse button will expand the vmin and vmax proportionally to the selected region. When panning, the vmin and vmax of the norm are both shifted according to the direction of movement.

Display the Plot

Finally, you can display the plot using show() function.

plt.show()

Summary

In this lab, you learned how to use Matplotlib to interactively adjust the range of colormapping on an image using a colorbar. You used the zoom and pan mode to adjust the vmin and vmax of the norm. Zooming using the right mouse button expanded the vmin and vmax proportionally to the selected region. When panning, the vmin and vmax of the norm were both shifted according to the direction of movement. You also learned how to add a colorbar to the plot and display the plot.

Other Python Tutorials you may like