Como você altera o tamanho da figura desenhada com matplotlib?
python
graph
matplotlib
plot
visualization
tatwright
fonte
fonte
plt.figure(figsize=(20,10))
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
->fig.set_size_inches(11,8)
para evitar a confusão de uma vez por todas.Respostas:
A figura indica a assinatura da chamada:
figure(figsize=(1,1))
criaria uma imagem polegada por polegada, que seria de 80 por 80 pixels, a menos que você também dê um argumento de dpi diferente.fonte
show()
criar uma janela pop-up, precisará ligarfigure(num=1,...)
antes de plotar qualquer coisa - o pyplot / pylab cria uma figura assim que você desenha alguma coisa e o tamanho da janela pop-up aparece para ser corrigido neste momento.Se você já criou a figura, pode fazer isso rapidamente:
Para propagar a alteração de tamanho para uma janela GUI existente, inclua
forward=True
fonte
imshow
, agora estou usando esse código logo após eliminar o espaço ao redor da área de plotagemplt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.fig.set_dpi(100)
.O seguinte parece funcionar:
Isso torna a largura da figura 5 polegadas e sua altura 10 polegadas .
A classe Figure usa isso como o valor padrão para um de seus argumentos.
fonte
fig.set_size_inches(18.5, 10.5, forward=True)
trabalhou.USANDO plt.rcParams
Há também essa solução alternativa, caso você queira alterar o tamanho sem usar o ambiente da figura. Portanto, caso você esteja usando,
plt.plot()
por exemplo, você pode definir uma tupla com largura e altura.Isso é muito útil quando você plota inline (por exemplo, com o IPython Notebook). Como @asamaier notou, é preferível não colocar essa declaração na mesma célula das declarações de importação.
Conversão para cm
A
figsize
tupla aceita polegadas; portanto, se você quiser defini-la em centímetros, divida-as por 2,54. Dê uma olhada nesta pergunta .fonte
plt.rcParams["figure.figsize"] = (20,3)
para uma célula extra. Quando eu chamo na mesma célula que a declaração de importação, ela é ignorada.Tente um código simples da seguinte maneira:
Você precisa definir o tamanho da figura antes de plotar.
fonte
atplotlib.pyplot.figure
, que os outros não dizem tão claramente. Eu continuo tentando coisas comomatplotlib.figure
ematplotlib.figure.Figure
plt.figure(figsize=(1,1))
é o ponto crucial. Obrigado.Caso você esteja procurando uma maneira de alterar o tamanho da figura no Pandas , você pode fazer, por exemplo:
Onde
df
está um dataframe do Pandas. Ou, para usar figuras ou eixos existentesSe você quiser alterar as configurações padrão, faça o seguinte:
fonte
O primeiro link no Google para
'matplotlib figure size'
é AdjustingImageSize ( cache do Google da página ).Aqui está um script de teste da página acima. Ele cria
test[1-3].png
arquivos de tamanhos diferentes da mesma imagem:Resultado:
Duas notas:
Os comentários do módulo e a saída real diferem.
Essa resposta permite combinar facilmente as três imagens em um arquivo de imagem para ver a diferença de tamanhos.
fonte
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
Você pode simplesmente usar (de matplotlib.figure.Figure ):
A partir do Matplotlib 2.0.0, as alterações na tela serão visíveis imediatamente, conforme o padrão da
forward
palavra - chave .True
Se você quiser apenas alterar a largura ou a altura, em vez de ambos, use
fig.set_figwidth(val)
oufig.set_figheight(val)
Isso também atualizará imediatamente sua tela, mas apenas no Matplotlib 2.2.0 e mais recente.
Para versões mais antigas
Você precisa especificar
forward=True
explicitamente para atualizar sua tela ao vivo em versões anteriores às especificadas acima. Observe que as funçõesset_figwidth
eset_figheight
não suportam oforward
parâmetro em versões anteriores ao Matplotlib 1.5.0.fonte
Você também pode usar:
fonte
Tente comentar fora da
fig = ...
linhafonte
Isto funciona bem para mim:
Isso também pode ajudar: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
fonte
Para aumentar o tamanho da sua figura N vezes, você precisa inseri-la imediatamente antes do pl.show ():
Também funciona bem com o notebook ipython.
fonte
Como o Matplotlib não pode usar o sistema métrico de forma nativa, se você quiser especificar o tamanho da sua figura em uma unidade de comprimento razoável, como centímetros, faça o seguinte (código de gns-ank ):
Então você pode usar:
fonte
Isso redimensiona a figura imediatamente mesmo após a figura ter sido desenhada (pelo menos usando Qt4Agg / TkAgg - mas não o MacOSX - com matplotlib 1.4.0):
fonte
Generalizando e simplificando a resposta da psihodelia. Se você deseja alterar o tamanho atual da figura por um fator
sizefactor
Após alterar o tamanho atual, pode ocorrer que você precise ajustar o layout da subtrama . Você pode fazer isso na GUI da janela de figuras ou por meio do comando subplots_adjust
Por exemplo,
fonte
Outra opção, para usar a função rc () no matplotlib (a unidade é em polegadas)
fonte
Você altera diretamente o tamanho da figura usando
fonte
pyplot
não possui nenhum método chamadoset_figsize
.