Wie ändern Sie die Größe der mit matplotlib gezeichneten Figur?
python
graph
matplotlib
plot
visualization
tatwright
quelle
quelle
plt.figure(figsize=(20,10))
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
->fig.set_size_inches(11,8)
um die Verwirrung ein für alle Mal zu vermeiden.Antworten:
Abbildung zeigt Ihnen die Anrufsignatur:
figure(figsize=(1,1))
würde ein Zoll-für-Zoll-Bild erstellen, das 80 x 80 Pixel groß wäre, sofern Sie nicht auch ein anderes dpi-Argument angeben.quelle
show()
ein Popup-Fenster erstellen, müssen Sie aufrufen,figure(num=1,...)
bevor Sie etwas zeichnen. Pyplot / Pylab erstellt eine Figur, sobald Sie etwas zeichnen, und die Größe des Popups wird angezeigt an dieser Stelle fixiert werden.Wenn Sie die Figur bereits erstellt haben, können Sie dies schnell tun:
Um die Größenänderung auf ein vorhandenes GUI-Fenster zu übertragen, fügen Sie hinzu
forward=True
quelle
imshow
behoben. Jetzt verwende ich diesen Code, nachdem ich den Platz um den Plotbereich mit beseitigt habeplt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.fig.set_dpi(100)
.Folgendes scheint zu funktionieren:
Dies macht die Breite der Figur 5 Zoll und ihre Höhe 10 Zoll .
Die Figure-Klasse verwendet dies dann als Standardwert für eines ihrer Argumente.
quelle
fig.set_size_inches(18.5, 10.5, forward=True)
hat funktioniert.VERWENDUNG von plt.rcParams
Es gibt auch diese Problemumgehung für den Fall, dass Sie die Größe ändern möchten, ohne die Figurenumgebung zu verwenden. Wenn Sie
plt.plot()
beispielsweise verwenden, können Sie ein Tupel mit Breite und Höhe festlegen.Dies ist sehr nützlich, wenn Sie inline zeichnen (z. B. mit IPython Notebook). Wie @asamaier bemerkt hat, ist es vorzuziehen, diese Anweisung nicht in dieselbe Zelle der Importanweisungen zu setzen.
Umrechnung in cm
Das
figsize
Tupel akzeptiert Zoll. Wenn Sie es also in Zentimetern einstellen möchten, müssen Sie es durch 2,54 teilen. Schauen Sie sich diese Frage an .quelle
plt.rcParams["figure.figsize"] = (20,3)
eine zusätzliche Zelle anrufen . Wenn ich es in derselben Zelle wie die import-Anweisung aufrufe, wird es ignoriert.Bitte versuchen Sie einen einfachen Code wie folgt:
Sie müssen die Figurengröße festlegen, bevor Sie zeichnen.
quelle
atplotlib.pyplot.figure
, was die anderen nicht so klar sagen. Ich versuche immer wieder Dinge wiematplotlib.figure
undmatplotlib.figure.Figure
plt.figure(figsize=(1,1))
ist der entscheidende Schritt. Vielen Dank.Wenn Sie nach einer Möglichkeit suchen, die Figurengröße in Pandas zu ändern , können Sie z.
Wo
df
ist ein Pandas-Datenrahmen? Oder um vorhandene Figuren oder Achsen zu verwendenWenn Sie die Standardeinstellungen ändern möchten, können Sie Folgendes tun:
quelle
Der erste Link in Google für
'matplotlib figure size'
ist AdjustingImageSize ( Google-Cache der Seite ).Hier ist ein Testskript von der obigen Seite. Es werden
test[1-3].png
Dateien unterschiedlicher Größe desselben Bildes erstellt:Ausgabe:
Zwei Anmerkungen:
Die Modulkommentare und die tatsächliche Ausgabe unterscheiden sich.
Diese Antwort ermöglicht es einfach, alle drei Bilder in einer Bilddatei zu kombinieren, um den Größenunterschied zu erkennen.
quelle
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
Sie können einfach verwenden (aus matplotlib.figure.Figure ):
Ab Matplotlib 2.0.0 werden Änderungen an Ihrer Zeichenfläche sofort sichtbar, da das
forward
Schlüsselwort standardmäßig verwendet wirdTrue
.Wenn Sie nur die Breite oder Höhe anstelle von beiden ändern möchten , können Sie verwenden
fig.set_figwidth(val)
oderfig.set_figheight(val)
Diese aktualisieren auch sofort Ihre Zeichenfläche, jedoch nur in Matplotlib 2.2.0 und höher.
Für ältere Versionen
Sie müssen
forward=True
explizit angeben, um Ihre Zeichenfläche in älteren Versionen als den oben angegebenen live zu aktualisieren. Beachten Sie, dass die Funktionenset_figwidth
undset_figheight
denforward
Parameter in älteren Versionen als Matplotlib 1.5.0 nicht unterstützen .quelle
Sie können auch verwenden:
quelle
Versuchen Sie, die
fig = ...
Zeile zu kommentierenquelle
Das funktioniert gut für mich:
Dies kann auch hilfreich sein: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
quelle
Um Ihre Figur N-mal zu vergrößern, müssen Sie dies kurz vor Ihrer pl.show () einfügen:
Es funktioniert auch gut mit ipython Notebook.
quelle
Da Matplotlib nicht in der Lage ist nativ das metrische System zu verwenden, wenn Sie die Größe Ihrer Figur in einer angemessenen Längeneinheit wie Zentimeter angeben möchten, können Sie den folgenden (Code aus tun GNS-ank ):
Dann können Sie verwenden:
quelle
Dadurch wird die Größe der Figur sofort nach dem Zeichnen der Figur geändert (zumindest unter Verwendung von Qt4Agg / TkAgg - aber nicht MacOSX - mit matplotlib 1.4.0):
quelle
Verallgemeinerung und Vereinfachung der Antwort von Psihodelia. Wenn Sie die aktuelle Größe der Figur um einen Faktor ändern möchten
sizefactor
Nach dem Ändern der aktuellen Größe kann es vorkommen, dass Sie das Layout des Unterplots optimieren müssen . Sie können dies in der GUI des Figurenfensters oder mit dem Befehl subplots_adjust tun
Zum Beispiel,
quelle
Eine weitere Option ist die Verwendung der Funktion rc () in matplotlib (die Einheit ist Zoll).
quelle
Sie ändern die Figurengröße direkt mit
quelle
pyplot
hat keine Methode benanntset_figsize
.