Wie kann die Größe der Figurenbox dynamisch erweitert werden, um eine expandierende Legende in Matplotlib aufzunehmen?

Susan Sarandon
Freigeben: 2024-10-18 12:51:30
Original
448 Leute haben es durchsucht

How to Expand Figure Box Size Dynamically to Accommodate an Expanding Legend in Matplotlib?

Erweitern des Abbildungsfelds, um mehr Legende unterzubringen

Problembeschreibung

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.

Dynamische Erweiterung der Abbildungsbox

Die gewünschte Lösung besteht darin, die Größe der Abbildungsbox dynamisch zu erweitern Platzieren Sie eine expandierende Legende.

Implementierung: Benutzerdefinierter Savefig-Aufruf mit bbox_extra_artists

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

Dies gibt an, dass das Figurenfeld bei der Berechnung seiner Größe zusätzliche Künstler wie die Legende (lgd) berücksichtigen soll.

Beispiel und Ergebnis

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

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

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!