Comment puis-je changer la taille de la figure avec des sous-tracés?

287

Je suis tombé sur cet exemple sur le site Web de Matplotlib. Je me demandais s'il était possible d'augmenter la taille de la figure.

J'ai essayé avec

f.figsize(15,15)

mais ça ne fait rien.

Brian
la source

Réponses:

530

Si vous avez déjà utilisé l'objet figure:

f.set_figheight(15)
f.set_figwidth(15)

Mais si vous utilisez la commande .subplots () (comme dans les exemples que vous montrez) pour créer une nouvelle figure, vous pouvez également utiliser:

f, axs = plt.subplots(2,2,figsize=(15,15))
Rutger Kassies
la source
12
il y a aussi fig.set_size_inchesde régler la hauteur et la largeur ensemble
Francesco Montesano
1
Cela ne fonctionne pas, vous pouvez régler la hauteur à votre guise, mais elle ne sera jamais plus grande que votre moniteur.
2
Cela n'a rien à voir avec votre moniteur. Et si vous sortez en png? Voulez-vous dire qu'elle ne peut jamais être supérieure à la résolution d'écran? C'est la combinaison de la taille en pouces avec le dpi qui détermine la taille en pixels.
Rutger Kassies
inclure figsize dans l'appel à subplots () ne semble pas fonctionner. cependant, appeler f.set_figheight fonctionne.
Vicki B
Est-il possible de changer la taille de la sous-parcelle elle-même sans changer la taille de l'image?
Alexis.Rolland
38

Vous pouvez également créer un figure()objet à l'aide de l' figsizeargument, puis utiliser add_subplotpour ajouter vos sous-tracés. Par exemple

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

Exemple simple

Les avantages de cette méthode sont que la syntaxe est plus proche des appels de subplot()au lieu de subplots(). Par exemple, les sous-parcelles ne semblent pas prendre en charge l'utilisation d'un GridSpecpour contrôler l'espacement des sous-parcelles, mais les deux subplot()et le add_subplot()font.

aquirdturtle
la source
10
Est-il possible d'ajouter séparément la «taille» à ax et ax2?
M. Gopal
2
Si je comprends bien, vous souhaitez définir la taille relative des deux axes? Dans ce cas, je pense que vous cherchez cette question: stackoverflow.com/questions/10388462/…
aquirdturtle