Comment définir la taille par défaut de la figure matplotlib dans un notebook ipython?

104

J'utilise "$ ipython notebook --pylab inline" pour démarrer le notebook ipython. La taille de la figure d'affichage matplotlib est trop grande pour moi et je dois l'ajuster manuellement. Comment définir la taille par défaut de la figure affichée dans la cellule?

gros bug
la source

Réponses:

123

Je crois que le travail suivant dans la version 0.11 et au-dessus. Pour vérifier la version:

$ ipython --version

Cela peut valoir la peine d'ajouter ces informations à votre question.

Solution:

Vous devez trouver le fichier ipython_notebook_config.py. En fonction de votre processus d'installation, cela devrait être quelque part comme

.config/ipython/profile_default/ipython_notebook_config.py

où se .configtrouve dans votre répertoire personnel.

Une fois que vous avez localisé ce fichier, trouvez les lignes suivantes

# Subset of matplotlib rcParams that should be different for the inline backend.
# c.InlineBackend.rc = {'font.size': 10, 'figure.figsize': (6.0, 4.0), 'figure.facecolor': 'white', 'savefig.dpi': 72, 'figure.subplot.bottom': 0.125, 'figure.edgecolor': 'white'}

Décommentez cette ligne c.InlineBack...et définissez votre taille par défaut dans la deuxième entrée du dictionnaire.

Notez que cela pourrait être fait dans un script python (et donc de manière interactive dans IPython) en utilisant

pylab.rcParams['figure.figsize'] = (10.0, 8.0)
Greg
la source
6
Dans ipython 2.0, le fichier de configuration est au format .ipython / profile_default / ipython_notebook_config.py
Fabian Pedregosa
1
Dans les anciennes versions d'iPython, ipython_notebook_config.pyne contient pas la ligne pour configurer le backend en ligne. Étant donné que le fichier de configuration n'est pas automatiquement mis à jour lorsque vous mettez à jour iPython (au moins sous Windows), vous devez le supprimer et générer un nouveau fichier de configuration en exécutant ipython profile createcomme suggéré par @anmol ci-dessous.
Puggie
1
Vous pouvez localiser les profils existants avec ipython profile locate.
j08lue
22
Et si vous utilisez matplotlib au lieu de pyplot, la commande interactive est matplotlib.rcParams['figure.figsize'] = (10.0, 8.0)
Luc
J'utilise jupyter 4.1.0-6 avec python-ipykernel 4.5.2-3 et ipython 5.3.0-1 (tous sur Arch) et je n'ai pas de fichier intitulé ipython_notebook_config.pysous mon ~. Une idée de la façon dont les choses ont pu changer dans les versions les plus récentes?
Pastafarianist
111

A travaillé comme un charme pour moi:

matplotlib.rcParams['figure.figsize'] = (20.0, 10.0)
Subspacien
la source
17
Je ne sais pas à quel point c'est idiomatique, mais j'ai ajusté cela pour mon notebook jupyter pour qu'il fonctionne:import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['figure.figsize'] = (20.0, 10.0)
brycemcd
8
Il y a aussiplt.rc('figure', figsize=(20.0, 10.0))
joelostblom
2
Assez bizarre, mais après quelques mises à jour, je dois diviser %matplotlib inlineet plt.rc(...)traverser différentes cellules pour que ces dernières fonctionnent. Idem pourmatplotlib.rcParams[...]
uranix
3
Assurez-vous également que cette ligne est après%matplotlib inline
Rishabh Agrahari
17

Si vous ne possédez pas ce fichier ipython_notebook_config.py, vous pouvez en créer un en suivant le readme et en tapant

ipython profile create
anmol
la source
16

Juste pour être complet, cela fonctionne également

from IPython.core.pylabtools import figsize
figsize(14, 7)

C'est un emballage autour de la rcParamssolution

gsmafra
la source
Important pour un gros cahier avec plusieurs parcelles, et fonctionne comme un charme
CATALUNA84
8

Dans iPython 3.0.0, le backend en ligne doit être configuré dans ipython_kernel_config.py. Vous devez ajouter manuellement la c.InlineBackend.rcligne ... (comme mentionné dans la réponse de Greg ). Cela affectera à la fois le backend en ligne dans la console Qt et le notebook.

Puggie
la source
0
plt.rcParams['figure.figsize'] = (15, 5)
Thomas G.
la source