Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erweitere ich das Figurenfeld, um Legenden außerhalb der Achse in Matplotlib aufzunehmen?

Wie erweitere ich das Figurenfeld, um Legenden außerhalb der Achse in Matplotlib aufzunehmen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-18 12:18:30383Durchsuche

How to Expand Figure Box to Accommodate Legends Outside the Axis in Matplotlib?

Erweitern des Abbildungsfelds für Legenden außerhalb der Achse

Das Verschieben einer Legende außerhalb der Achse führt oft dazu, dass das Abbildungsfeld zu klein ist, um es aufzunehmen Größe der Legende. Das Verkleinern der Achse ist nicht ideal, da es die Diagrammgröße verringert und die Interpretation komplexer Daten erschwert.

Dynamische Größenänderung des Figurenfelds

Es ist möglich, dieses Problem zu lösen um die Größe des Abbildungsfelds dynamisch an die Legende anzupassen. Dies kann erreicht werden, indem der Aufruf von savefig() mit den folgenden Argumenten geändert wird:

  1. bbox_extra_artists, um zusätzliche Künstler einzubeziehen, die über die Achse hinausgehen, wie z. B. Legenden.
  2. bbox_inches='tight ', um die Figurengröße an alle darin enthaltenen Elemente anzupassen.

Codebeispiel

Beachten Sie den folgenden Code:

<code class="python">import matplotlib.pyplot as plt
import numpy as np

# Construct a plot with a legend
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')

# Save the figure with the adjusted bounding box
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>

Ausgabe

Dieser Code erstellt ein Diagramm mit einer Legende außerhalb der Achse und das Abbildungsfeld wird erweitert, um die Legende aufzunehmen. Es ist auch möglich, zusätzliche Künstler, wie z. B. Textbeschriftungen, in das Argument bbox_extra_artists aufzunehmen.

Vereinfachter Befehl

In neueren Versionen von Matplotlib wurde der Befehl vereinfacht . Um eine Figur mit einem engen Begrenzungsrahmen zu speichern, ist nur das folgende Argument erforderlich:

<code class="python">plt.savefig('x.png', bbox_inches='tight')</code>

Das obige ist der detaillierte Inhalt vonWie erweitere ich das Figurenfeld, um Legenden außerhalb der Achse in Matplotlib aufzunehmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn