Anpassung der Höhen der einzelnen subplots in matplotlib Python
wenn ich eine Reihe von Nebenhandlungen mit einer Spalte und vielen Zeilen, d.h.:
plt.subplot(4, 1, 1) # first subplot
plt.subplot(4, 1, 2) # second subplot
# ...
wie kann ich passen Sie die Höhe der ersten N Nebenhandlungen? Zum Beispiel, wenn ich 4 subplots, die jeweils auf einer eigenen Zeile, ich möchte, dass alle von Ihnen haben die gleiche Breite, aber die ersten 3 Geschichten werden kürzer, D. H. Sie haben Ihre y-Achsen werden kleiner und nehmen weniger der plot als die y-Achse der letzten Parzelle in der Zeile. Wie kann ich dies tun?
Dank.
- Verwenden Sie die AxesGrid toolkit.
- Verwenden tight_layout. Dieser link hat gute Beispiele: matplotlib.org/users/tight_layout_guide.html . Damit es funktioniert, müssen Sie ändern die figsize z.B.
plt.figure(figsize=(10, 1.5*plotsToPlot))
woplotsToPlot
ist die Anzahl der subplots auf eine Abbildung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es mehrere Möglichkeiten, dies zu tun. Die einfachsten (und am wenigsten flexible) Möglichkeit ist, einfach nennen, so etwas wie:
Geben wird, Sie so etwas wie dieses:
Dies ist jedoch nicht sehr flexibel. Wenn Sie mit matplotlib >= 1.0.0, schauen Sie in mit GridSpec. Es ist ganz nett, und ist eine viel flexiblere Art und Weise des anordnens Nebenhandlungen.
Auch wenn diese Frage alt ist, war ich um eine Antwort auf eine sehr ähnliche Frage. @Joe Verweis auf AxesGrid, war die Antwort auf meine Frage, und hat sehr einfache Nutzung, also wollte ich verdeutlichen, dass die Funktionalität auf Vollständigkeit.
AxesGrid Funktionalität bietet die Möglichkeit schaffen, die Parzellen unterschiedlicher Größe und platzieren Sie Sie sehr konkret über die
subplot2grid
Funktionalität:Beachten Sie, dass die max-Werte für
row_n
,col_n
sindm-1
undn-1
jeweils als null-Indizierung-notation verwendet wird.Speziell um die Frage, ob es wurden insgesamt 5 Geschichten, wo die Letzte Nebenhandlung hat die doppelte Höhe wie die anderen, die wir nutzen könnten
m=6
.