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.

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))

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.