388 Stimmen

Matplotlib unterschiedliche Größe subplots

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?

22voto

tomjn Punkte 4790

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

enter image description here

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

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X