Ich muss einer Figur zwei Nebenhandlungen hinzufügen. Eine Teilfläche muss etwa dreimal so breit sein wie die zweite (gleiche Höhe). Ich habe dies erreicht mit GridSpec
und die colspan
Argument, aber ich würde dies gerne mit figure
damit ich sie im PDF-Format speichern kann. Ich kann die erste Zahl mit der Funktion figsize
Argument im Konstruktor, aber wie kann ich die Größe des zweiten Plots ändern?
Antwort
Zu viele Anzeigen?Eine schöne Möglichkeit, dies zu tun, wurde hinzugefügt in matplotlib 3.3.0
, subplot_mosaic
.
Sie können ein schönes Layout im "ASCII-Art"-Stil erstellen.
Zum Beispiel
fig, axes = plt.subplot_mosaic("ABC;DDD")
erhalten Sie drei Achsen in der oberen Reihe und eine, die sich über die gesamte Breite der unteren Reihe erstreckt, wie unten dargestellt
Das Schöne an dieser Methode ist, dass die axes
von der Funktion zurückgegeben wird, ist ein Wörterbuch mit den von Ihnen definierten Namen, so dass es einfacher ist, den Überblick zu behalten, was was ist, z. B.
axes["A"].plot([1, 2, 3], [1, 2, 3])
Sie können auch eine Liste von Listen an subplot_mosaic
wenn Sie längere Namen verwenden möchten
fig, axes = plt.subplot_mosaic(
[["top left", "top centre", "top right"],
["bottom row", "bottom row", "bottom row"]]
)
axes["top left"].plot([1, 2, 3], [1, 2, 3])
ergibt die gleiche Zahl
- See previous answers
- Weitere Antworten anzeigen