Miten voit muuttaa matplotlibilla piirretyn kuvion kokoa?
kuva kertoo kutsun allekirjoituksen:
from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
figure(figsize=(1,1))
loisi tuuman kokoisen kuvan, joka olisi 80 x 80 pikseliä, ellet anna myös muuta dpi-argumenttia.
Huomautus poistamisesta: Matplotlibin virallisen oppaan mukaan
pylab
-moduulin käyttöä ei enää suositella. Harkitse sen sijaanmatplotlib.pyplot
-moduulin käyttöä, kuten tässä toisessa vastauksessa on kuvattu.
Seuraava näyttää toimivan:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10
Tämä tekee kuvion leveydestä 5 tuumaa ja korkeudesta 10 tuumaa.
Figure-luokka käyttää sitten tätä yhden argumenttinsa oletusarvona.
Ensimmäinen linkki Googlessa hakusanalla 'matplotlib figure size'
on AdjustingImageSize (Googlen välimuistissa oleva sivu).
Tässä'on testiskripti edellä mainitulta sivulta. Se luo samasta kuvasta erikokoisia test[1-3].png
-tiedostoja:
#!/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.
Tulos:
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.]
Kaksi muistiinpanoa:
Moduulin kommentit ja varsinainen tuotos eroavat toisistaan.
Tämän vastauksen avulla voit helposti yhdistää kaikki kolme kuvaa yhdeksi kuvatiedostoksi ja nähdä kokoeron.