Frage Wie änderst du die Größe der mit matplotlib gezeichneten Figuren?


Wie ändert man die Größe der mit matplotlib gezeichneten Figur?


1099
2017-12-01 21:24


Ursprung


Antworten:


Zahl sagt dir die Rufunterschrift:

from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')

figure(figsize=(1,1)) würde ein Inch-by-Inch-Bild erstellen, das 80 mal 80 Pixel groß wäre, es sei denn, Sie geben auch ein anderes dpi-Argument an.


673
2018-03-12 12:41



Wenn Sie die Figur bereits erstellt haben, können Sie dies schnell tun:

fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)

Um die Größenänderung in ein vorhandenes GUI-Fenster zu übertragen, fügen Sie hinzu forward=True

fig.set_size_inches(18.5, 10.5, forward=True)

530
2017-11-29 17:30



Deponierungshinweis:
  Gemäß der offizieller Matplotlib-Führer, Nutzung der pylab Modul wird nicht mehr empfohlen. Bitte beachten Sie die Verwendung der matplotlib.pyplot Modul stattdessen, wie von beschrieben diese andere Antwort.

Folgendes scheint zu funktionieren:

from pylab import rcParams
rcParams['figure.figsize'] = 5, 10

Dies macht die Figur 5 Zoll breit und seine Höhe 10 Zoll.

Die Figure-Klasse verwendet dies dann als Standardwert für eines ihrer Argumente.


258
2017-12-01 21:28



Bitte versuchen Sie einen einfachen Code wie folgt:

from matplotlib import pyplot as plt
plt.figure(figsize=(1,1))
x = [1,2,3]
plt.plot(x, x)
plt.show()

Sie müssen die Figurengröße vor dem Plotten einstellen.


152
2018-06-06 03:24



Plt.rcParams verwenden

Es gibt auch diese Problemumgehung für den Fall, dass Sie die Größe ändern möchten, ohne die Figurenumgebung zu verwenden. Also falls du es benutzt plt.plot() beispielsweise.

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)

Dies ist sehr nützlich, wenn Sie inline plotten (z. B. mit IPython Notebook).

Umwandlung in cm

Das figsize Tupel akzeptiert Zoll, wenn Sie es in Zentimetern setzen möchten, müssen Sie sie durch 2,54 teilen diese Frage.


124
2018-01-18 10:55



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 erstellt test[1-3].png Dateien in verschiedenen Größen des gleichen Bildes:

#!/usr/bin/env python
"""
This is a small demo file that helps teach how to adjust figure sizes
for matplotlib

"""

import matplotlib
print "using MPL version:", matplotlib.__version__
matplotlib.use("WXAgg") # do this before pylab so you don'tget the default back end.

import pylab
import numpy as np

# Generate and plot some simple data:
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)

pylab.plot(x,y)
F = pylab.gcf()

# Now check everything with the defaults:
DPI = F.get_dpi()
print "DPI:", DPI
DefaultSize = F.get_size_inches()
print "Default size in Inches", DefaultSize
print "Which should result in a %i x %i Image"%(DPI*DefaultSize[0], DPI*DefaultSize[1])
# the default is 100dpi for savefig:
F.savefig("test1.png")
# this gives me a 797 x 566 pixel image, which is about 100 DPI

# Now make the image twice as big, while keeping the fonts and all the
# same size
F.set_size_inches( (DefaultSize[0]*2, DefaultSize[1]*2) )
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test2.png")
# this results in a 1595x1132 image

# Now make the image twice as big, making all the fonts and lines
# bigger too.

F.set_size_inches( DefaultSize )# resetthe size
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test3.png", dpi = (200)) # change the dpi
# this also results in a 1595x1132 image, but the fonts are larger.

Ausgabe:

using MPL version: 0.98.1
DPI: 80
Default size in Inches [ 8.  6.]
Which should result in a 640 x 480 Image
Size in Inches [ 16.  12.]
Size in Inches [ 16.  12.]

Zwei Anmerkungen:

  1. Die Modulkommentare und die tatsächliche Ausgabe sind unterschiedlich.

  2. Diese Antwort ermöglicht es, alle drei Bilder in einer Bilddatei zu kombinieren, um den Unterschied in den Größen zu sehen.


66
2017-12-02 16:01



Wenn Sie nach einer Möglichkeit suchen, die Größe der Figur in Pandas zu ändern, können Sie z.

df['some_column'].plot(figsize=(10, 5))

woher df ist ein Pandas-Datenrahmen. Wenn Sie die Standardeinstellungen ändern möchten, können Sie Folgendes tun:

import matplotlib

matplotlib.rc('figure', figsize=(10, 5))

41
2017-09-29 12:54