Quando se trata de visualização de dados em Python, o Matplotlib é uma das bibliotecas mais populares e poderosas disponíveis. Para cientistas de dados, analistas e entusiastas de Python intermediário, ajustar o tamanho da figura é uma tarefa comum para garantir que os gráficos sejam legíveis e esteticamente agradáveis.
Neste tutorial completo, vamos explorar todos os métodos disponíveis para redimensionar figuras no Matplotlib, desde a criação inicial até ajustes dinâmicos e configurações globais para ambientes como Jupyter Notebooks.
Entendendo o Conceito de Figura no Matplotlib
Antes de mergulharmos nos exemplos, é importante entender o que é uma “figura” no contexto do Matplotlib. Uma figura representa a janela ou a página inteira onde os elementos gráficos são desenhados. Dentro desta figura, podemos ter um ou mais eixos (axes ou plots), que são as áreas onde os dados são efetivamente plotados.
O tamanho da figura é definido em polegadas por padrão, e a resolução é controlada pelo parâmetro DPI (dots per inch ou pontos por polegada).
Definindo o Tamanho na Criação da Figura
A maneira mais direta de definir o tamanho de uma figura no Matplotlib é no momento da sua criação. Você pode especificar o tamanho usando o parâmetro figsize e definir a resolução com o parâmetro dpi.
Exemplo Básico com plt.figure()
from matplotlib.pyplot import figure
# Criar uma figura com um tamanho e resolução específicos
figure(figsize=(8, 6), dpi=80)Neste exemplo, figsize=(8, 6) cria uma figura com 8 polegadas de largura e 6 polegadas de altura. Se você não especificar o dpi, o padrão será de 80 pixels por polegada.
Ajustando o Tamanho da Figura
Para ajustar o tamanho da figura no Matplotlib, utilizamos o parâmetro figsize que aceita uma tupla representando a largura e a altura da figura em polegadas. Além disso, o parâmetro dpi (dots per inch) controla a resolução da figura.
Exemplo Básico de Ajuste de Tamanho
import matplotlib.pyplot as plt
# Ajustando o tamanho da figura para 10x6 polegadas
plt.figure(figsize=(10, 6))
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
Neste exemplo, criamos uma figura com 10 polegadas de largura e 6 polegadas de altura antes de plotar os dados.
Exemplo com Tamanho Mínimo
# Criar uma figura pequena de 1x1 polegada
plt.figure(figsize=(1, 1))
plt.plot([1, 2, 3], [1, 2, 3])
plt.show()Utilizando Subplots com Tamanho Personalizado
Quando trabalhamos com múltiplos plots ou preferimos a abordagem orientada a objetos, o ajuste de tamanho pode ser feito durante a criação dos subplots:
import matplotlib.pyplot as plt
# Criando uma figura e um conjunto de subplots com tamanho específico
fig, ax = plt.subplots(figsize=(12, 8))
ax.plot([1, 2, 3, 4], [1, 4, 9, 16])
ax.set_title('Gráfico usando Subplots')
plt.show()Aqui, figsize é passado como argumento para subplots(), definindo o tamanho para todos os plots dentro da figura. Esta é a abordagem mais recomendada para código moderno em Matplotlib.
Múltiplos Subplots com Tamanho Ajustado
# Criando uma grade 2x2 de subplots com tamanho personalizado
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
# Populando os subplots
axes[0, 0].plot([1, 2, 3], [1, 4, 9])
axes[0, 1].bar(['A', 'B', 'C'], [3, 7, 5])
axes[1, 0].scatter([1, 2, 3], [2, 4, 6])
axes[1, 1].hist([1, 2, 2, 3, 3, 3, 4, 4, 4, 4], bins=4)
plt.tight_layout() # Ajusta o espaçamento automaticamente
plt.show()
Ajustando o Tamanho de uma Figura Existente
Se você já criou uma figura e quer modificar seu tamanho posteriormente, você pode usar o método set_size_inches(). Este método permite ajustar o tamanho da figura em polegadas de forma dinâmica:
import matplotlib.pyplot as plt
# Criar uma figura básica
fig = plt.figure()
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
# Obter a figura atual e redimensionar
fig = plt.gcf() # gcf = get current figure
fig.set_size_inches(18.5, 10.5)
# Salvar a figura com o novo tamanho
fig.savefig('grafico_redimensionado.png', dpi=100)
plt.show()Atualizando Janelas GUI em Tempo Real
Para garantir que a mudança de tamanho afete uma janela de GUI existente, você pode adicionar o parâmetro forward=True:
fig.set_size_inches(18.5, 10.5, forward=True)Você também pode mudar a resolução da figura usando set_dpi:
fig.set_dpi(100)Alterando o Tamanho da Figura para Plotagem Inline
Ao plotar inline, como em um IPython Notebook, você pode mudar o tamanho da figura sem usar o ambiente figure ao definir o parâmetro figure.figsize em plt.rcParams:
import matplotlib.pyplot as plt
# Definir o tamanho padrão da figura
plt.rcParams["figure.figsize"] = (20, 3)Lembre-se de evitar colocar essa instrução na mesma célula que seus comandos de importação. Para redefinir o tamanho da figura para o padrão em gráficos subsequentes, use plt.rcParams:
import matplotlib.pyplot as plt
# Definir o tamanho padrão global para todas as figuras
plt.rcParams["figure.figsize"] = (20, 3)
# Agora todas as figuras criadas terão esse tamanho por padrão
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
plt.plot([4, 3, 2, 1], [1, 4, 9, 16])
plt.show()
Importante: Evite colocar essa instrução na mesma célula que seus comandos de importação no Jupyter Notebook.
Resetando para o Tamanho Padrão
Para redefinir o tamanho da figura para o padrão original em gráficos subsequentes:
# Restaurar o tamanho padrão
plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]Conversão para Centímetros
Se você prefere trabalhar em centímetros, pode converter o tamanho para polegadas dividindo os valores em centímetros por 2,54:
# Definir o tamanho da figura em centímetros
largura_cm = 10
altura_cm = 20
fig.set_size_inches(largura_cm / 2.54, altura_cm / 2.54)Convertendo Medidas: Centímetros para Polegadas
Como o Matplotlib trabalha com polegadas por padrão, mas muitas vezes trabalhamos com centímetros, é útil saber como converter essas medidas. A conversão é simples: 1 polegada = 2.54 centímetros.
import matplotlib.pyplot as plt
# Definir dimensões em centímetros
largura_cm = 25
altura_cm = 15
# Converter para polegadas (dividindo por 2.54)
largura_pol = largura_cm / 2.54
altura_pol = altura_cm / 2.54
# Criar figura com as dimensões convertidas
plt.figure(figsize=(largura_pol, altura_pol))
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title('Figura com Dimensões em Centímetros')
plt.show()Função Auxiliar para Conversão
Você pode criar uma função auxiliar reutilizável:
def cm_para_polegadas(cm):
"""Converte centímetros para polegadas"""
return cm / 2.54
# Uso
fig, ax = plt.subplots(figsize=(cm_para_polegadas(20), cm_para_polegadas(15)))
ax.plot([1, 2, 3], [1, 4, 9])
plt.show()
É importante notar que o uso do módulo pylab está depreciado. Em vez disso, você deve usar o módulo matplotlib.pyplot. Se você encontrar código antigo que usa pylab, veja como ele pode parecer:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10Isso definiria a largura da figura para 5 polegadas e sua altura para 10 polegadas.
Dicas para Ajuste de Tamanho de Gráficos
1. Considere o Contexto de Uso
O tamanho ideal da figura depende fortemente do contexto onde ela será exibida:
- Artigos científicos: geralmente requerem figuras entre 3-7 polegadas de largura;
- Apresentações: figuras maiores (10-16 polegadas) funcionam melhor;
- Publicações web: considere responsividade e tamanhos entre 8-12 polegadas;
- Impressão: use DPI alto (300+) e tamanhos apropriados ao formato final.
2. Mantenha a Proporção de Aspecto
Preserve a proporção de aspecto dos seus plots para evitar distorções visuais. Proporções comuns incluem:
- 16:9 – ideal para apresentações widescreen;
- 4:3 – formato tradicional de apresentações;
- 1:1 – quadrado, útil para gráficos de dispersão;
- 2:1 ou 3:2 – boas proporções para gráficos de linha.
# Exemplo de diferentes proporções
fig, axes = plt.subplots(1, 3, figsize=(18, 4))
# 16:9
axes[0].set_title('Proporção 16:9')
axes[0].set_aspect(16/9)
# 4:3
axes[1].set_title('Proporção 4:3')
axes[1].set_aspect(4/3)
# 1:1
axes[2].set_title('Proporção 1:1')
axes[2].set_aspect(1)
plt.tight_layout()
plt.show()
Conclusão
Ajustar o tamanho da figura no Matplotlib é uma tarefa simples, mas essencial para criar visualizações de dados eficazes. Com o uso do parâmetro figsize e do método set_size_inches, temos controle total sobre o tamanho e a resolução das nossas figuras. Lembre-se de considerar o contexto de uso e a proporção de aspecto para garantir que seus gráficos sejam não apenas informativos, mas também visualmente atraentes. Experimente com diferentes tamanhos e resoluções para encontrar o ajuste perfeito para suas necessidades de visualização de dados.
Trilha Análise e Visualização de Dados
Manipule dados e construa visualizações interativas com as ferramentas mais utilizadas por analistas de dados do mundo.
Comece agora
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários
30xp