Heim >Backend-Entwicklung >Python-Tutorial >Wie kann die Größe der Figurenbox dynamisch erweitert werden, um eine expandierende Legende in Matplotlib aufzunehmen?
Beim Platzieren einer Legende außerhalb der Achse in Matplotlib kann es gelegentlich vorkommen, dass sie über die Achse hinausragt Grenzen des Figurenfeldes, was zu einem abgeschnittenen Erscheinungsbild führt. Die Größenänderung der Achsenachsen durch Verkleinern ist keine optimale Lösung, da dadurch die Sichtbarkeit der Daten verringert wird.
Die gewünschte Lösung besteht darin, die Größe der Abbildungsbox dynamisch zu erweitern Platzieren Sie eine expandierende Legende.
Um dies zu erreichen, kann der Savefig-Funktionsaufruf so angepasst werden, dass er das Argument bbox_extra_artists enthält:
<code class="python">fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
Dies gibt an, dass das Figurenfeld bei der Berechnung seiner Größe zusätzliche Künstler wie die Legende (lgd) berücksichtigen soll.
Verwendung dieses modifizierten Savefig-Aufrufs:
<code class="python">import matplotlib.pyplot as plt import numpy as np fig = plt.figure(1) ax = fig.add_subplot(111) ax.set_title("Trigonometry") 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='upper center', bbox_to_anchor=(0.5,-0.1)) ax.grid('on') fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
Erzeugt eine Figur, deren Legende über die Achse hinausragt, aber im erweiterten Figurenfeld untergebracht ist:
Trigonometry 2 1 0 -1 -2 -4π -2π 0 2π 4π Inverse tan Cosine Sine
Das obige ist der detaillierte Inhalt vonWie kann die Größe der Figurenbox dynamisch erweitert werden, um eine expandierende Legende in Matplotlib aufzunehmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!