Comment agrandir les tracés en ligne dans Jupyter Notebook?


264

J'ai fait mes tracés en ligne sur mon bloc-notes Ipython avec " %matplotlib inline."

Maintenant, l'intrigue apparaît. Cependant, il est très petit. Existe-t-il un moyen de l'agrandir à l'aide des paramètres du bloc-notes ou des paramètres de tracé?

entrez la description de l'image ici

Réponses:


172

Oui, jouez avec figuresizecomme ça (avant d'appeler votre sous-intrigue):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

28
f, (ax1, ax2, ax3) = plt.subplots (1,3, sharex = 'col', sharey = 'row', figsize = (18, 16)) pour ce cas spécifique
Rol

12
Ne marche pas. Changer figsize dans mon cas ne change que le rapport d'aspect. La largeur du chiffre total reste fixe
Aleksejs Fomins

Cela est correct pour les nombres trop grands pour tenir sur la page, puis la mise à l'échelle s'arrête. Il peut toujours être utile pour modifier le rapport d'aspect comme vous l'avez noté.
roadrunner66

1
Augmenter le dpi à '200' offre un bien meilleur résultat que de simplement changer la taille de la figure.
Adithya Bhat

Oui, voir @Hagne ci-dessous.
roadrunner66

404

La taille de la figure par défaut (en pouces) est contrôlée par

matplotlib.rcParams['figure.figsize'] = [width, height]

Par exemple:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

crée une figure avec 10 (largeur) x 5 (hauteur) pouces


7
C'est en fait beaucoup plus utile comme stratégie de définition et d'oubli si toutes les parcelles sont mal dimensionnées.
ijoseph

2
Génial. Aux prises avec la taille du boxplot pandas et cela l'a corrigé. Pour une raison quelconque, l' figsize=(x,y)argument est inefficace en jupyter. Cependant, la modification matplob.rcParams, comme vous le suggérez, fonctionne parfaitement.
0_0

30
Assurez-vous de l'exécuter après avoir exécuté %matplotlib inline.
UET

@uut n'est-ce pas la valeur par défaut?
Verena Haunschmid

4
@VerenaHaunschmid exécuté %matplotlib inlineaprès avoir défini rcParams semble remplacer la taille de la figure par défaut.
UET

63

J'ai trouvé que cela %matplotlib notebookfonctionne mieux pour moi qu'en ligne avec les cahiers Jupyter.

Notez que vous devrez peut-être redémarrer le noyau si vous l'utilisiez %matplotlib inlineauparavant.

Mise à jour 2019: si vous exécutez Jupyter Lab, vous voudrez peut-être utiliser %matplotlib widget


5
Peut-être que cela fonctionne dans certains cas, mais quand j'ai essayé cela sur le mien, cela m'a donné une image vierge avec une trame de données pandas df.plot(). Je devais retourner à%matplotlib inline
tsando

8
@tsando J'ai vu un problème où passer de %matplotlib inlineà %matplotlib notebooksans redémarrer le noyau donne une sortie vierge. Passer de %matplotlib notebookà %matplotlib inlinefonctionne bien.
SlimCheney

4
Merci @SlimCheney, je confirme que ce que vous dites est vrai - cela fonctionne si vous redémarrez le noyau
tsando

1
Cela vaut vraiment la peine d'essayer de configurer les composants de panoramique et de zoom à la main
beldaz

1
cela ne fonctionne pas, même après redémarrage du noyau. Il donne une sortie vierge
Kardi Teknomo

31

Si vous voulez seulement que l'image de votre figure apparaisse plus grande sans changer l'apparence générale de votre figure, augmentez la résolution de la figure. Changer la taille de la figure comme suggéré dans la plupart des autres réponses changera l'apparence, car les tailles de police ne sont pas mises à l'échelle en conséquence.

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200

19

La question concerne matplotlib, mais pour le bien des utilisateurs R qui se retrouvent ici étant donné le titre indépendant de la langue:

Si vous utilisez un noyau R, utilisez simplement:

options(repr.plot.width=4, repr.plot.height=3)

11

Pour ajuster la taille d'une figure:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

Pour modifier les paramètres par défaut, et donc tous vos tracés:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]

1

Un détail petit mais important pour ajuster la taille des chiffres sur une base ponctuelle (comme plusieurs commentateurs ci-dessus ont rapporté "cela ne fonctionne pas pour moi"):

Vous devez faire plt.figure (figsize = (,)) AVANT de définir votre tracé réel. Par exemple:

Cela devrait dimensionner correctement le tracé en fonction de la taille de votre image spécifiée:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

Alors que cela montrera l'intrigue avec les paramètres par défaut, semblant "ignorer" la taille de la figure:

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.