Dominando os Tamanhos de Figuras no Matplotlib: Guia Completo
Updated on
Controlar o tamanho da figura é uma das partes mais importantes para criar visualizações limpas, legíveis e com qualidade de publicação no Matplotlib. Seja para gerar gráficos exploratórios rápidos ou figuras refinadas para relatórios, saber definir e ajustar corretamente os tamanhos de figuras evita gráficos distorcidos, rótulos ilegíveis e layouts inconsistentes.
Este guia cobre todos os métodos comuns e práticos para controlar tamanhos de figuras no Matplotlib, incluindo:
- Uso de
figsizeao criar novas figuras - Ajuste de tamanho de figuras já existentes
- Uso de
rcParamspara padrões globais - Definição de tamanho em centímetros
- Mudança de tamanho em gráficos do Pandas
- Redefinição e modificação dinâmica do tamanho global
- Um guia de solução de problemas
- Uma tabela comparativa resumindo todos os métodos
⭐ TL;DR — Referência Rápida
| Tarefa | Melhor Método | Exemplo |
|---|---|---|
| Definir tamanho para uma nova figura | plt.figure(figsize=(w, h)) | plt.figure(figsize=(8, 6)) |
| Alterar tamanho de figura existente | fig.set_size_inches(w, h) | fig.set_size_inches(12, 4) |
| Definir tamanho padrão global | plt.rcParams["figure.figsize"] = ... | (12, 6) |
| Definir tamanho em gráfico do Pandas | df.plot(figsize=(w, h)) | (10, 5) |
| Usar centímetros | Converter cm → inch | w_cm / 2.54 |
Entendendo Tamanhos de Figuras no Matplotlib
O Matplotlib mede o tamanho da figura em polegadas, usando uma tupla (largura, altura).
A forma mais direta de criar uma figura com tamanho fixo é:
from matplotlib.pyplot import figure
# Create a new figure (width=8 inches, height=6 inches)
figure(figsize=(8, 6))Isso garante que o gráfico use exatamente o tamanho especificado, independentemente do conjunto de dados ou do tipo de gráfico.
Ajustando o Tamanho da Figura Depois que Ela Existe
Às vezes uma figura é criada automaticamente — por exemplo, via plt.plot() ou por um gráfico do Pandas. Ainda assim, é possível redimensioná-la depois:
import matplotlib.pyplot as plt
# Get the current figure
fig = plt.gcf()
# Change its size to 18.5 x 10.5 inches
fig.set_size_inches(18.5, 10.5)
# Save the resized figure
fig.savefig("figure.png", dpi=100)set_size_inches() é a forma mais confiável de redimensionar figuras após sua criação.
Definindo Tamanho Padrão Global de Figuras com rcParams
Se você quer que todos os seus gráficos sigam o mesmo tamanho (útil em notebooks e scripts), configure um padrão global:
import matplotlib.pyplot as plt
# Make all future figures 20 x 3 inches
plt.rcParams["figure.figsize"] = (20, 3)Isso afeta todos os gráficos subsequentes até que seja sobrescrito.
Definindo Tamanho da Figura em Centímetros
Se você precisa de medidas em sistema métrico (por exemplo, para artigos acadêmicos), converta centímetros → polegadas:
width_cm = 20
height_cm = 10
# Convert cm to inches
width_in = width_cm / 2.54
height_in = height_cm / 2.54
# Use the converted size
figure(figsize=(width_in, height_in))Isso funciona de forma idêntica à abordagem baseada em polegadas.
Redefinindo ou Alterando Dinamicamente os Padrões Globais
Para retornar às configurações originais do Matplotlib:
plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]Isso é útil quando um notebook mistura gráficos pequenos e rápidos com figuras maiores para publicação.
Controlando o Tamanho da Figura com Pandas
Pandas integra diretamente com Matplotlib e também aceita figsize:
df['some_column'].plot(figsize=(10, 5))Para subplots:
fig, ax = plt.subplots(figsize=(10, 5))
df['some_column'].plot(ax=ax)Esse método é especialmente conveniente em notebooks de análise de dados.
Alterando o Tamanho Padrão de Figuras do Matplotlib para Todos os Gráficos
Use isto se quiser que todo gráfico siga automaticamente o mesmo tamanho:
import matplotlib
matplotlib.rc("figure", figsize=(10, 5))Isso é semelhante a modificar rcParams diretamente e funciona em scripts e notebooks.
🔍 Comparação de Todos os Métodos
| Método | Quando Usar | Exemplo |
|---|---|---|
figure(figsize=...) | Ao criar uma figura totalmente nova | Mais recomendado |
set_size_inches() | Redimensionar uma figura existente | Bom para gráficos gerados auto. |
plt.rcParams["figure.figsize"] | Definir padrão global dentro de notebook | Mais comum em EDA |
matplotlib.rc("figure", figsize=...) | Definir padrões globais em um script | Melhor para produção |
| Conversão para centímetros | Contextos acadêmicos, exigências de editor | Para artigos em LaTeX |
df.plot(figsize=...) | Fluxo de trabalho com Pandas | Conveniente para EDA rápida |
⚠️ Solução de Problemas: Quando figsize Não Funciona (Erros Comuns)
1. Jupyter Notebook ignora figsize
Correção:
%matplotlib inline2. tight_layout corta rótulos
Use:
plt.tight_layout()3. Ao salvar, o tamanho da figura muda
Sempre defina o DPI explicitamente:
plt.savefig("output.png", dpi=150)4. Fontes ou rótulos mudam de escala de forma inesperada
Desative o autolayout:
plt.rcParams['figure.autolayout'] = False5. Subplots se sobrepõem
Aumente o tamanho:
fig, ax = plt.subplots(figsize=(12, 8))Essas seções de solução de problemas são altamente relevantes para buscas sobre Matplotlib e ajudam a resolver frustrações comuns de usuários.
Alternativa ao Matplotlib: Visualize Dados com PyGWalker
Além do Matplotlib, você pode explorar seu DataFrame do Pandas visualmente usando PyGWalker, uma ferramenta open-source de visualização de dados com interface de arrastar e soltar:
Use dentro do Jupyter:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)Ou experimente online:
Perguntas Frequentes
-
Como defino o tamanho da figura no Matplotlib?
Usefigure(figsize=(width, height)). -
Como redimensiono uma figura existente?
Usefig.set_size_inches(w, h). -
Posso mudar o tamanho da figura em gráficos do Pandas?
Sim, usandofigsize=(w, h).
