Creating Subplots With Matplotlib

MatplotlibMatplotlibBeginner
Practice Now

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

Introduction

Matplotlib is a popular data visualization library in Python. It provides a variety of functions to create different types of plots. One of its key features is the ability to create subplots. This allows users to create multiple plots in the same figure, making it easier to compare different data sets or views of the same data. In this lab, we will walk through the process of creating subplots using Matplotlib.

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/BasicConceptsGroup(["`Basic Concepts`"]) python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"]) python(("`Python`")) -.-> python/PythonStandardLibraryGroup(["`Python Standard Library`"]) python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"]) python(("`Python`")) -.-> python/FunctionsGroup(["`Functions`"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("`Importing Matplotlib`") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("`Understanding Figures and Axes`") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("`Line Plots`") python/BasicConceptsGroup -.-> python/variables_data_types("`Variables and Data Types`") python/BasicConceptsGroup -.-> python/booleans("`Booleans`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`") python/PythonStandardLibraryGroup -.-> python/data_collections("`Data Collections`") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("`Data Visualization`") python/FunctionsGroup -.-> python/build_in_functions("`Build-in Functions`") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} matplotlib/figures_axes -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} matplotlib/line_plots -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/variables_data_types -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/booleans -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/lists -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/tuples -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/importing_modules -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/data_collections -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/data_visualization -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} python/build_in_functions -.-> lab-48969{{"`Creating Subplots With Matplotlib`"}} end

Creating a Figure with a Single Subplot

The simplest way to create a single subplot is by using the subplots() function without any arguments. This function returns a Figure object and a single Axes object.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

Stacking Subplots in One Direction

To create multiple subplots stacked vertically or horizontally, we can pass the number of rows and columns as arguments to the subplots() function. The returned axs object is a 1D numpy array containing the list of created Axes.

fig, axs = plt.subplots(2)
axs[0].plot(x, y)
axs[1].plot(x, -y)

Stacking Subplots in Two Directions

To create a grid of subplots, we can pass the number of rows and columns as arguments to the subplots() function. The returned axs object is a 2D NumPy array.

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[0, 1].plot(x, y, 'tab:orange')
axs[1, 0].plot(x, -y, 'tab:green')
axs[1, 1].plot(x, -y, 'tab:red')

Sharing Axes

By default, each Axes is scaled individually. To align the horizontal or vertical axis of subplots, we can use the sharex or sharey parameters.

fig, (ax1, ax2) = plt.subplots(2, sharex=True)
ax1.plot(x, y)
ax2.plot(x + 1, -y)

Polar Axes

We can create a grid of polar Axes by passing the projection='polar' parameter to the subplots() function.

fig, (ax1, ax2) = plt.subplots(1, 2, subplot_kw=dict(projection='polar'))
ax1.plot(x, y)
ax2.plot(x, y ** 2)

Summary

In this lab, we learned how to create subplots using Matplotlib. We covered creating a figure with a single subplot, stacking subplots in one direction, stacking subplots in two directions, sharing axes, and creating polar axes. By using these techniques, we can create complex visualizations that allow us to compare and analyze multiple data sets at once.

Other Matplotlib Tutorials you may like