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

Barbara Streisand
Freigeben: 2024-10-18 12:18:30
Original
483 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage