Zoom Inset Axes

PythonPythonBeginner
Practice Now

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

Introduction

Matplotlib is a Python library used for creating static, animated, and interactive visualizations in Python. It is a powerful tool for data visualization, and it is widely used in the scientific community. In this lab, we will learn how to create a zoomed-in region in a Matplotlib plot.

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/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"]) python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"]) python/BasicConceptsGroup -.-> python/comments("`Comments`") matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("`Importing Matplotlib`") matplotlib/PlottingDataGroup -.-> matplotlib/heatmaps("`Heatmaps`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`") python/ModulesandPackagesGroup -.-> python/using_packages("`Using Packages`") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("`Numerical Computing`") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("`Data Visualization`") subgraph Lab Skills python/comments -.-> lab-49038{{"`Zoom Inset Axes`"}} matplotlib/importing_matplotlib -.-> lab-49038{{"`Zoom Inset Axes`"}} matplotlib/heatmaps -.-> lab-49038{{"`Zoom Inset Axes`"}} python/lists -.-> lab-49038{{"`Zoom Inset Axes`"}} python/tuples -.-> lab-49038{{"`Zoom Inset Axes`"}} python/importing_modules -.-> lab-49038{{"`Zoom Inset Axes`"}} python/using_packages -.-> lab-49038{{"`Zoom Inset Axes`"}} python/numerical_computing -.-> lab-49038{{"`Zoom Inset Axes`"}} python/data_visualization -.-> lab-49038{{"`Zoom Inset Axes`"}} end

Import necessary libraries

The first step is to import the necessary libraries. We will be using NumPy and Matplotlib for this example.

import numpy as np
from matplotlib import cbook
from matplotlib import pyplot as plt

Create the plot

Next, we will create a plot using some sample data. We will be using a bivariate normal distribution as our data source.

fig, ax = plt.subplots()

## make data
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")  ## 15x15 array
Z2 = np.zeros((150, 150))
ny, nx = Z.shape
Z2[30:30+ny, 30:30+nx] = Z
extent = (-3, 4, -4, 3)

ax.imshow(Z2, extent=extent, origin="lower")

Add an inset plot

In this step, we will add an inset plot to the main plot. This inset plot will show a zoomed-in region of the main plot.

## inset axes....
x1, x2, y1, y2 = -1.5, -0.9, -2.5, -1.9  ## subregion of the original image
axins = ax.inset_axes(
    [0.5, 0.5, 0.47, 0.47],
    xlim=(x1, x2), ylim=(y1, y2), xticklabels=[], yticklabels=[])
axins.imshow(Z2, extent=extent, origin="lower")

Add a rectangle to show the zoomed-in region

In this step, we will add a rectangle to the main plot to show where the zoomed-in region is located.

ax.indicate_inset_zoom(axins, edgecolor="black")

Display the plot

Finally, we will display the plot using the plt.show() function.

plt.show()

Summary

In this lab, we learned how to create a zoomed-in region in a Matplotlib plot. We created a main plot using sample data, added an inset plot to show a zoomed-in region of the main plot, and added a rectangle to show where the zoomed-in region is located. We then displayed the plot using the plt.show() function.

Other Python Tutorials you may like