Como aumentar os gráficos embutidos no Jupyter Notebook?

263

Fiz minhas plotagens em linha no meu notebook Ipython com " %matplotlib inline."

Agora, o enredo aparece. No entanto, é muito pequeno. Existe uma maneira de fazê-la parecer maior usando as configurações do notebook ou da plotagem?

insira a descrição da imagem aqui

Christopher
fonte

Respostas:

172

Sim, brinque figuresizeassim (antes de chamar sua subparcela):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')
roadrunner66
fonte
28
f, (ax1, ax2, ax3) = plt.subplots (1,3, sharex = 'col', sharey = 'row', figsize = (18, 16)) para este caso específico
Rol
12
Não funciona. Mudar de tamanho no meu caso só altera a proporção. A largura da figura total permanece fixo
Aleksejs Fomins
Isso é correto para números grandes demais para caberem na página e a escala é interrompida. Ainda pode ser útil para alterar a proporção, como você observou.
roadrunner66
1
Aumentar o dpi para '200' fornece um resultado muito melhor do que apenas alterar o tamanho da figura.
Adithya Bhat
Sim, veja @Hagne abaixo.
roadrunner66
403

O tamanho padrão da figura (em polegadas) é controlado por

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

Por exemplo:

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

cria uma figura com 10 (largura) x 5 (altura) polegadas

Tacaswell
fonte
7
Na verdade, isso é muito mais útil como uma estratégia de definir e esquecer se todas as parcelas forem do tamanho errado.
ijoseph
2
Ótimo. Lutou com o tamanho do lote de pandas e isso foi corrigido. Por alguma razão, o figsize=(x,y)argumento é ineficaz em jupyter. No entanto, modificar matplob.rcParams, como você sugere, funciona perfeitamente.
0_0
29
Certifique-se de executar isso depois de executar %matplotlib inline.
uut 22/11/19
@ uut este não é o padrão?
Verena Haunschmid
4
O @VerenaHaunschmid, executado %matplotlib inlineapós definir o rcParams, parece substituir o tamanho da figura de volta ao padrão.
uut 28/03/19
63

Descobri que %matplotlib notebookfunciona melhor para mim do que alinhado com os cadernos Jupyter.

Note que você pode precisar reiniciar o kernel se estiver usando %matplotlib inlineantes.

Atualização 2019: se você estiver executando o Jupyter Lab, poderá usar %matplotlib widget

SlimCheney
fonte
5
Talvez isso funcione em alguns casos, mas quando tentei isso no meu, me deu uma imagem em branco com um dataframe de pandas df.plot(). Eu tive que voltar para%matplotlib inline
tsando
8
@tsando Eu vi um problema em que mudar de %matplotlib inlinepara %matplotlib notebooksem reiniciar o kernel gera uma saída em branco. Mudar de %matplotlib notebookpara %matplotlib inlinefunciona bem.
SlimCheney
4
Graças @SlimCheney, confirmo o que você diz é verdade - ele funciona se você reiniciar o kernel
tsando
1
Definitivamente, isso é melhor do que tentar configurar manualmente os componentes de panorama e zoom manualmente
beldaz
1
não funciona, mesmo após reiniciar o kernel. Dá uma saída em branco
Kardi Teknomo
31

Se você deseja apenas que a imagem da sua figura apareça maior sem alterar a aparência geral da sua figura, aumente a resolução da figura. Alterar o tamanho da figura, conforme sugerido na maioria das outras respostas, altera a aparência, pois os tamanhos das fontes não são dimensionados de acordo.

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

A questão é sobre matplotlib, mas para o bem de qualquer usuário R que termine aqui, com o título independente de idioma:

Se você estiver usando um kernel R, use:

options(repr.plot.width=4, repr.plot.height=3)
Jared Wilber
fonte
11

Para ajustar o tamanho de uma figura:

import matplotlib.pyplot as plt

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

Para alterar as configurações padrão e, portanto, todos os seus gráficos:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]
farrellw
fonte
1

Um detalhe pequeno, mas importante, para ajustar o tamanho dos números de forma pontual (como vários comentadores acima relataram "isso não funciona para mim"):

Você deve fazer plt.figure (figsize = (,)) ANTES de definir sua plotagem real. Por exemplo:

Isso deve dimensionar corretamente o gráfico de acordo com o tamanho da figura especificado:

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

Enquanto isso mostrará o gráfico com as configurações padrão, parecendo "ignorar" o tamanho da figura:

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