graphique - tracer cercle python matplotlib




Comment changer la taille des figures dessinées avec matplotlib? (9)

Note de dépréciation:
Conformément au guide officiel Matplotlib , l'utilisation du module pylab n'est plus recommandée. matplotlib.pyplot utiliser matplotlib.pyplot module matplotlib.pyplot , comme décrit par cette autre réponse .

Ce qui suit semble fonctionner:

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

Cela fait la largeur de la figure de 5 pouces, et sa hauteur de 10 pouces .

La classe Figure l'utilise ensuite comme valeur par défaut pour l'un de ses arguments.

Comment changez-vous la taille de la figure dessinée avec matplotlib?


UTILISER plt.rcParams

Il existe également cette solution de contournement dans le cas où vous souhaitez modifier la taille sans utiliser l'environnement de figure. Donc, dans le cas où vous utilisez plt.plot() par exemple.

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

Ceci est très utile lorsque vous tracez en ligne (par exemple avec IPython Notebook).

Conversion en cm

Le tuple figsize accepte les pouces, donc si vous voulez le mettre en centimètres, vous devez les diviser par 2.54 jetez un oeil à cette question .


Cela fonctionne bien pour moi:

from matplotlib import pyplot as plt
F = gcf()
Size = F.get_size_inches()
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True)#Set forward to True to resize window along with plot in figure.
plt.show() #or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array

Cela pourrait aussi aider: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html


Dans le cas où vous cherchez un moyen de changer la taille de la figure dans Pandas, vous pourriez faire, par exemple:

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

df est un dataframe Pandas. Si vous souhaitez modifier les paramètres par défaut, vous pouvez effectuer les opérations suivantes:

import matplotlib

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

Le premier lien dans Google pour 'matplotlib figure size' ( Google cache de la page ).

Voici un script de test de la page ci-dessus. Il crée test[1-3].png fichiers test[1-3].png de différentes tailles de la même image:

#!/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.

Sortie:

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.]

Deux notes:

  1. Les commentaires du module et la sortie réelle diffèrent.

  2. Cette réponse permet de combiner facilement les trois images dans un fichier image pour voir la différence de taille.


Pour augmenter la taille de votre personnage N fois vous devez l'insérer juste avant votre pl.show ():

N = 2
params = pl.gcf()
plSize = params.get_size_inches()
params.set_size_inches( (plSize[0]*N, plSize[1]*N) )

Il fonctionne également bien avec le cahier ipython.


S'il vous plaît essayez un code simple comme suit:

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

Vous devez définir la taille de la figure avant de tracer.


Si vous avez déjà créé le chiffre, vous pouvez le faire rapidement:

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

Pour propager le changement de taille à une fenêtre gui existante, ajoutez forward=True

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

figure vous indique la signature d'appel:

figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')

Donc, figure(figsize=(1,1)) crée une image de pouce par pouce, qui sera de 80 par 80 pixels, sauf si vous donnez également un argument dpi différent.





visualization