Como definir o tamanho padrão da figura matplotlib no notebook ipython?

104

Eu uso "$ ipython notebook --pylab inline" para iniciar o notebook ipython. O tamanho da figura matplotlib da tela é muito grande para mim, e tenho que ajustá-lo manualmente. Como definir o tamanho padrão da figura exibida na célula?

Grande erro
fonte

Respostas:

123

Eu acredito que o seguinte funciona na versão 0.11 e acima. Para verificar a versão:

$ ipython --version

Pode valer a pena adicionar essas informações à sua pergunta.

Solução:

Você precisa encontrar o arquivo ipython_notebook_config.py. Dependendo do seu processo de instalação, isso deve estar em algum lugar como

.config/ipython/profile_default/ipython_notebook_config.py

onde .configestá em seu diretório inicial.

Depois de localizar este arquivo, encontre as seguintes linhas

# 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'}

Remova o comentário desta linha c.InlineBack...e defina seu tamanho de figura padrão na segunda entrada do dicionário.

Observe que isso pode ser feito em um script Python (e, portanto, interativamente em IPython) usando

pylab.rcParams['figure.figsize'] = (10.0, 8.0)
Greg
fonte
6
No ipython 2.0, o arquivo de configuração está em .ipython / profile_default / ipython_notebook_config.py
Fabian Pedregosa
1
Em versões anteriores do iPython, ipython_notebook_config.pynão contém a linha para configurar o backend embutido. Visto que o arquivo de configuração não é atualizado automaticamente quando você atualiza o iPython (pelo menos no Windows), você precisa excluí-lo e gerar um novo arquivo de configuração executando ipython profile createconforme sugerido por @anmol abaixo.
Puggie de
1
Você pode localizar perfis existentes com ipython profile locate.
julho
22
E se você estiver usando matplotlib em vez de pyplot, o comando interativo é matplotlib.rcParams['figure.figsize'] = (10.0, 8.0)
Lucas
Estou usando o jupyter 4.1.0-6 com python-ipykernel 4.5.2-3 e ipython 5.3.0-1 (todos eles no Arch) e não tenho nenhum arquivo com o título ipython_notebook_config.pymeu ~. Alguma ideia de como as coisas podem ter mudado nas versões mais recentes?
Pastafarianist
111

Funcionou gostando de um encanto para mim:

matplotlib.rcParams['figure.figsize'] = (20.0, 10.0)
Subespacial
fonte
17
Eu não sei o quão idiomático isso é, mas eu ajustei isso para meu notebook Jupyter para fazê-lo funcionar:import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['figure.figsize'] = (20.0, 10.0)
brycemcd
8
Há tambémplt.rc('figure', figsize=(20.0, 10.0))
joelostblom
2
Muito estranho, mas depois de alguma atualização, preciso dividir %matplotlib inlinee plt.rc(...)entre células diferentes para que o último funcione. O mesmo vale paramatplotlib.rcParams[...]
uranix
3
Certifique-se também de que esta linha seja posterior%matplotlib inline
Rishabh Agrahari
17

Se você não tem este arquivo ipython_notebook_config.py, pode criar um seguindo o leia-me e digitando

ipython profile create
anmol
fonte
16

Apenas para completar, isso também funciona

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

É um invólucro em torno da rcParamssolução

gsmafra
fonte
Importante para um grande notebook com múltiplos enredos e funciona
perfeitamente
8

No iPython 3.0.0, o back-end inline precisa ser configurado em ipython_kernel_config.py. Você precisa adicionar manualmente a c.InlineBackend.rclinha ... (conforme mencionado na resposta de Greg ). Isso afetará o backend embutido no console Qt e no notebook.

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