Como altero o tamanho da figura com subtramas?

287

Me deparei com este exemplo no site Matplotlib. Eu queria saber se era possível aumentar o tamanho da figura.

Eu tentei com

f.figsize(15,15)

mas não faz nada.

Brian
fonte

Respostas:

526

Se você já possui o objeto figura, use:

f.set_figheight(15)
f.set_figwidth(15)

Mas se você usar o comando .subplots () (como nos exemplos que você está mostrando) para criar uma nova figura, também poderá usar:

f, axs = plt.subplots(2,2,figsize=(15,15))
Rutger Kassies
fonte
12
há também fig.set_size_inchesa altura do conjunto e largura simultaneamente
Francesco Montesano
1
Isso não funciona, você pode definir a altura para o que quiser, mas nunca será maior que o seu monitor.
2
Isso não precisa fazer nada com o seu monitor. E se você imprimir em um png? Você está dizendo que nunca pode ser maior que a resolução da tela? É a combinação de tamanho em polegadas com o dpi que determina o tamanho em pixels.
Rutger Kassies
A inclusão de figsize na chamada para subtramas () parece não funcionar. chamar f.set_figheight, no entanto, funciona.
Vicki B
É possível alterar o tamanho da subtrama sem alterar o tamanho da figura?
Alexis.Rolland 24/01
38

Como alternativa, crie um figure()objeto usando o figsizeargumento e use add_subplotpara adicionar suas subparcelas. Por exemplo

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

Exemplo Simples

Os benefícios desse método são que a sintaxe está mais próxima das chamadas em subplot()vez de subplots(). Por exemplo, as subparcelas não parecem suportar o uso de a GridSpecpara controlar o espaçamento das subparcelas, mas ambas subplot()e o add_subplot()fazem.

aquirdturtle
fonte
10
Alguma possibilidade de adicionar 'tamanho' a ax e ax2 separadamente?
M. Gopal
2
Se bem entendi, você deseja definir o tamanho relativo dos dois eixos? Nesse caso, acho que você está procurando esta pergunta: stackoverflow.com/questions/10388462/…
aquirdturtle