Wie ändere ich die Figurengröße mit Nebenhandlungen?

287

Ich bin auf der Matplotlib-Website auf dieses Beispiel gestoßen. Ich habe mich gefragt, ob es möglich ist, die Figur zu vergrößern.

Ich habe es mit versucht

f.figsize(15,15)

aber es macht nichts.

Brian
quelle

Antworten:

525

Wenn Sie das Figurenobjekt bereits haben, verwenden Sie:

f.set_figheight(15)
f.set_figwidth(15)

Wenn Sie jedoch den Befehl .subplots () verwenden (wie in den gezeigten Beispielen), um eine neue Figur zu erstellen, können Sie auch Folgendes verwenden:

f, axs = plt.subplots(2,2,figsize=(15,15))
Rutger Kassies
quelle
12
Es gibt auch fig.set_size_inchesHöhe und Breite zusammen einzustellen
Francesco Montesano
1
Dies funktioniert nicht, Sie können die Höhe beliebig einstellen, sie wird jedoch niemals größer als Ihr Monitor sein.
2
Dies hat nichts mit Ihrem Monitor zu tun. Was ist, wenn Sie auf einem PNG ausgeben? Wollen Sie damit sagen, dass es niemals größer als die Bildschirmauflösung sein kann? Es ist die Kombination der Größe in Zoll mit dem dpi, die die Größe in Pixel bestimmt.
Rutger Kassies
Das Einfügen von figsize in den Aufruf von subplots () scheint nicht zu funktionieren. Das Aufrufen von f.set_figheight funktioniert jedoch.
Vicki B
Ist es möglich, die Größe des Untergrundstücks selbst zu ändern, ohne die Größe der Figur zu ändern?
Alexis.Rolland
38

Alternativ können Sie figure()mit dem figsizeArgument ein Objekt erstellen und dann add_subplotIhre Unterzeichnungen hinzufügen. Z.B

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

Einfaches Beispiel

Vorteile dieser Methode sind, dass die Syntax näher an Aufrufen von subplot()statt von liegt subplots(). Beispielsweise scheinen Unterzeichnungen die Verwendung von a GridSpeczur Steuerung des Abstands der Unterzeichnungen nicht zu unterstützen , aber beides subplot()und add_subplot()tun dies.

aquirdturtle
quelle
10
Gibt es eine Möglichkeit, ax und ax2 getrennt 'size' hinzuzufügen?
M. Gopal
2
Wenn ich das richtig verstehe, möchten Sie die relative Größe der beiden Achsen einstellen? In diesem Fall denke ich, dass Sie nach dieser Frage suchen: stackoverflow.com/questions/10388462/…
aquirdturtle