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:
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!