Matplotlib Plot Sharing

PythonPythonBeginner
Practice Now

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

Introduction

When creating multiple plots that share a common axis, you may want to ensure that when you zoom in or out on one plot, the other plots update as well. In this lab, we will explore how to use the sharex and sharey attributes in Matplotlib to create plots that share an axis.

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`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/AdvancedPlottingGroup(["`Advanced Plotting`"]) 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/line_plots("`Line Plots`") matplotlib/AdvancedPlottingGroup -.-> matplotlib/subplots("`Subplots`") 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-48925{{"`Matplotlib Plot Sharing`"}} matplotlib/figures_axes -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} matplotlib/line_plots -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} matplotlib/subplots -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} python/tuples -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} python/importing_modules -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} python/numerical_computing -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} python/data_visualization -.-> lab-48925{{"`Matplotlib Plot Sharing`"}} end

Import Required Libraries

The first step is to import the required libraries. In this example, we will be using numpy and matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Create Data

Next, we need to create some data to plot. In this example, we will create two sets of data, sin(2*pi*t) and sin(4*pi*t).

t = np.arange(0, 10, 0.01)

Create the First Plot

Now, let's create the first plot using subplot. subplot takes three arguments: the number of rows, the number of columns, and the plot number. In this example, we will create a plot with 2 rows and 1 column (211), which means the first plot will be in the top row.

ax1 = plt.subplot(211)
ax1.plot(t, np.sin(2*np.pi*t))

Create the Second Plot

Next, we will create the second plot. We will use subplot again, but this time we will set the sharex attribute to the first plot (ax1). This ensures that the second plot will share the same x-axis as the first plot.

ax2 = plt.subplot(212, sharex=ax1)
ax2.plot(t, np.sin(4*np.pi*t))

Show the Plots

Finally, we can show the plots using plt.show().

plt.show()

Summary

In this lab, we learned how to use the sharex and sharey attributes in Matplotlib to create plots that share a common axis. This is useful when creating multiple plots that represent the same data with different views. By sharing the axis, we can ensure that the plots stay in sync when zooming or panning.

Other Python Tutorials you may like