Home >Backend Development >Python Tutorial >How to Position a Matplotlib Legend Outside the Plot Area While Preserving Axis Dimensions?

How to Position a Matplotlib Legend Outside the Plot Area While Preserving Axis Dimensions?

Linda Hamilton
Linda HamiltonOriginal
2024-12-25 18:56:14533browse

How to Position a Matplotlib Legend Outside the Plot Area While Preserving Axis Dimensions?

How to Position the Legend Outside the Plot Area

Placing the legend outside the plot area while maintaining the original axis dimensions is achievable using Matplotlib's versatile features. Here's how you can accomplish it:

Using bbox_to_anchor Keyword Argument

The bbox_to_anchor keyword argument allows you to specify the bounding box coordinates for the legend relative to the figure's axes. By setting these coordinates, you can position the legend outside the plot area while keeping the axis dimensions unchanged.

For example:

import matplotlib.pyplot as plt

x = np.arange(10)

fig = plt.figure()
ax = plt.subplot(111)

for i in range(5):
    ax.plot(x, i * x, label='$y = %ix$' % i)

# Shift the legend to the right outside the plot area
ax.legend(bbox_to_anchor=(1.1, 1.05))

plt.show()

Adjusting Legend Font Size

If you find the legend box too large, you can reduce the font size of the text within it. This can be done using the fontsize keyword argument:

# Shrink the font size of the legend text
ax.legend(bbox_to_anchor=(1.1, 1.05), fontsize='small')

Other Options

Apart from bbox_to_anchor, you can also consider the following options:

  • Shrinking the plot area: Reduce the width or height of the plot area to make room for the legend outside.
  • Using figlegend: Create a legend outside the plot area entirely using plt.figlegend().
  • Refer to the legend guide: Visit the official Matplotlib legend guide for more detailed information.

The above is the detailed content of How to Position a Matplotlib Legend Outside the Plot Area While Preserving Axis Dimensions?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn