3235 Stimmen

Wie kann man die Größe der mit Matplotlib gezeichneten Figuren ändern?

Wie kann man die Größe einer mit Matplotlib gezeichneten Figur ändern?

217voto

Kris Punkte 19271

Falls Sie nach einer Möglichkeit suchen, die Größe der Figuren in Pandas könnten Sie tun:

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

wobei df ist ein Pandas-Datenframe. Oder, um eine vorhandene Abbildung oder Achsen zu verwenden:

fig, ax = plt.subplots(figsize=(10, 5))
df['some_column'].plot(ax=ax)

Wenn Sie die Standardeinstellungen ändern möchten, können Sie wie folgt vorgehen:

import matplotlib

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

Weitere Einzelheiten finden Sie in den Dokumenten: pd.DataFrame.plot .

92voto

amalik2205 Punkte 3306
import matplotlib.pyplot as plt
plt.figure(figsize=(20,10))
plt.plot(x,y) ## This is your plot
plt.show()

Sie können auch verwenden:

fig, ax = plt.subplots(figsize=(20, 10))

90voto

jfs Punkte 370717

Der erste Link in Google für 'matplotlib figure size' es AdjustingImageSize ( Google-Cache der Seite ).

Hier ist ein Testskript von der oben genannten Seite. Es erstellt test[1-3].png Dateien mit unterschiedlichen Größen desselben 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 Kommentare des Moduls und die tatsächliche Ausgabe weichen voneinander ab.

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

11 Stimmen

Jedes Mal, wenn ich versuche, mich daran zu erinnern, wie man das macht, lande ich in diesem Beitrag. Also, dies ist der Code, den ich normalerweise suche: fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )

73voto

Renaud Punkte 15064

Versuchen Sie das Auskommentieren der fig = ... Zeile

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2

fig = plt.figure(figsize=(18, 18))
plt.scatter(x, y, s=area, alpha=0.5)
plt.show()

64voto

River Punkte 7963

Sie können einfach (von matplotlib.figure.Figure ):

fig.set_size_inches(width,height)

Ab Matplotlib 2.0.0 werden Änderungen am Canvas sofort sichtbar, da die forward Stichwort wird standardmäßig auf True .

Wenn Sie nur die Breite ändern oder Höhe anstelle von beidem verwenden, können Sie

fig.set_figwidth(val) o fig.set_figheight(val)

Diese aktualisieren auch sofort Ihre Leinwand, aber nur in Matplotlib 2.2.0 und neuer.

Für ältere Versionen

Sie müssen Folgendes angeben forward=True explizit, um Ihr Canvas in älteren Versionen als den oben angegebenen zu aktualisieren. Beachten Sie, dass die set_figwidth y set_figheight Funktionen unterstützen nicht die forward in Versionen älter als Matplotlib 1.5.0.

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