Home > Article > Backend Development > How to Create a Single Legend for Multiple Matplotlib Subplots?
Creating a Single Legend for Multiple Matplotlib Subplots
When plotting similar information across multiple subplots using Matplotlib, it can be beneficial to create a single legend that applies to all subplots. This simplifies the interpretation of the data by providing a consistent reference for the lines in each subplot.
To achieve this, utilize the get_legend_handles_labels() function on the last axis or by calling plt.gca().get_legend_handles_labels() if using the pyplot interface. These functions collect the necessary legend handles and labels from the label= arguments.
To create the single legend, call fig.legend(handles, labels, loc='upper center'), where fig is the figure containing the subplots and loc specifies the legend's location.
For example, if you have a 3x3 grid of subplots with identical lines, the following code would add a single legend above all subplots:
import matplotlib.pyplot as plt import numpy as np # Generate data for the subplots data = np.random.rand(9) # Create the subplots fig, axes = plt.subplots(3, 3) # Plot the data on each subplot for ax, datum in zip(axes.flatten(), data): ax.plot(datum) # Get the legend handles and labels handles, labels = plt.gca().get_legend_handles_labels() # Create the single legend plt.legend(handles, labels, loc='upper center') plt.show()
The above is the detailed content of How to Create a Single Legend for Multiple Matplotlib Subplots?. For more information, please follow other related articles on the PHP Chinese website!