Um gráfico estatístico bem construído é como uma frase bem escrita: cada elemento tem um propósito. Neste capítulo, vamos desmontar completamente a anatomia de um gráfico e entender o papel de cada componente na comunicação visual de dados. Essa compreensão é fundamental para criar visualizações que informam em vez de confundir.
Anatomia Completa de um Gráfico
Vamos começar com uma imagem clara e anotada de um gráfico real, usando dados de nossos pacientes. Cada elemento será etiquetado e explicado.
O Gráfico Completo com Anotações
Anatomia completa de um gráfico estatístico — cada elemento identificado
Explicação de Cada Elemento
1. Título e Subtítulo
O título é o cartão de apresentação do seu gráfico. Deve ser:
DicaBoas práticas para título
Específico e descritivo: Não use “Relação entre Variáveis”. Use “Relação entre Peso e Perímetro de Quadril em Pacientes Ambulatoriais”
Conciso: Máximo 10-15 palavras
Destaque visual: Use fonte maior e bold
No topo do gráfico: Deixe espaço suficiente abaixo
AvisoErros comuns
Títulos muito vagos (“Gráfico 1”)
Títulos que simplesmente repetem as variáveis sem contexto
Texto muito pequeno, dificilmente legível
Cores que competem com os dados
Subtítulo: Fornece contexto adicional. Explique a população, o período de coleta, ou especificidades metodológicas.
Ver código R
# Exemplo com ggplot2ggplot(pacientes, aes(x = peso, y = quadril)) +geom_point() +labs(title ="Relação entre Peso e Perímetro de Quadril",subtitle ="Pacientes ambulatoriais estratificados por sexo e idade" ) +theme(plot.title =element_text(face ="bold", size =16),plot.subtitle =element_text(color ="gray40", size =12) )
2. Eixos (Rótulos e Escala)
Os eixos são o mapa de referência do seu gráfico. Cada eixo deve conter:
Rótulo claro: Nome da variável + unidade entre parênteses
Escala apropriada: Começando do zero (para barras) ou não (para scatter plots)
Intervalos legíveis: Não use intervalos estranhos (ex: 0, 1.7, 3.4, 5.1)
Fonte legível: Tamanho mínimo de 10pt
DicaBoas práticas para eixos
Sempre inclua unidades: “Peso (kg)”, “Glicose (mg/dL)”
Use scale_x_continuous() e scale_y_continuous() para controlar intervalos
Evite eixos invertidos sem motivo claro
Se usar logaritmo, explique no rótulo: “log(Contagem)”
Ver código R
# Controle fino dos eixosggplot(pacientes, aes(x = peso, y = glicose)) +geom_point() +scale_x_continuous(name ="Peso (kg)",breaks =seq(50, 110, by =10),limits =c(50, 110) ) +scale_y_continuous(name ="Glicose em jejum (mg/dL)",breaks =seq(60, 180, by =20) )
3. Geometrias
Geometrias são as formas usadas para representar dados: pontos, barras, linhas, áreas.
Tipos principais
Geometria
Função
Melhor para
geom_point()
Scatter plot
Relações entre duas contínuas
geom_bar() / geom_col()
Barras
Comparação de categorias
geom_line()
Linhas
Séries temporais
geom_boxplot()
Box plots
Distribuição por grupos
geom_histogram()
Histogramas
Distribuição de uma variável
Cada geometria tem propriedades estéticas (cor, tamanho, forma) que podem ser mapeadas a variáveis:
Ver código R
# Exemplo: múltiplas estéticas mapeadas a variáveisp1 <- pacientes |>ggplot(aes(x = peso, y = quadril, color = sexo, size = idade)) +geom_point(alpha =0.6) +scale_color_manual(values = paleta_sexo) +labs(title ="Com cores e tamanhos mapeados") +tema_graficos()# Exemplo: estética constantep2 <- pacientes |>ggplot(aes(x = peso, y = quadril)) +geom_point(color = cores$azul, size =3, alpha =0.6) +labs(title ="Com cores e tamanhos constantes") +tema_graficos()p1 | p2
4. Legendas
Legendas explicam as cores, tamanhos e formas mapeadas aos dados.
DicaBoas práticas para legendas
Posição: Evite sobreposição com dados. Use legend.position = "right" ou "bottom"
Título claro: Use color = "Sexo", size = "Idade (anos)"
Ordem: Organize categorias logicamente (não alfabeticamente, a menos que apropriado)
Fundo discreto: Um fundo levemente opaco melhora legibilidade
Remova legendas desnecessárias: Se uma estética é constante, não precisa de legenda
Ver código R
# Legenda customizadaggplot(pacientes, aes(x = peso, y = quadril, color = sexo, size = idade)) +geom_point(alpha =0.6) +scale_color_manual(values = paleta_sexo,name ="Sexo do Paciente" ) +scale_size_continuous(name ="Idade (anos)",range =c(2, 8) ) +theme(legend.position ="right",legend.background =element_rect(fill ="white", color ="gray80"),legend.title =element_text(face ="bold") )
5. Grid Lines (Linhas de Grade)
Linhas de grade facilitam a leitura de valores no gráfico.
DicaBoas práticas para grid lines
Grid maior: Deve ser visível mas não competir com os dados
Grid menor: Remova linhas menores (element_blank()) para limpeza visual
Cor sutil: Use cinza claro, não preto
Para barras horizontais: Apenas grid vertical (x) geralmente funciona melhor
AvisoEvite
Grid muito denso e escuro que compete com os dados
Linhas contínuas em ambas as direções quando não necessário
Grid em gráficos com muita densidade de pontos
Ver código R
# Exemplo de controle fino de gridggplot(pacientes, aes(x = peso, y = quadril)) +geom_point() +theme(panel.grid.major =element_line(color ="gray90", size =0.3),panel.grid.minor =element_blank(),panel.background =element_rect(fill ="white", color ="gray70") )
6. Notas de Rodapé (Caption)
A caption fornece contexto crucial: fonte dos dados, tamanho da amostra, metodologia.
DicaBoas práticas para caption
Sempre cite a fonte: “Fonte: Base de dados de pacientes ambulatoriais”
Inclua n: “n=403 pacientes”
Explique transformações: “Nota: Dados foram log-transformados”
Metodologia especial: “Outliers definidos como >3 desvios padrão foram excluídos”
Ver código R
labs(caption ="Fonte: Base de dados de pacientes ambulatoriais (n=403, 2020-2024)\nNota: Valores faltantes não foram incluídos. Idade representada pelo tamanho dos pontos.")
<ggplot2::labels> List of 1
$ caption: chr "Fonte: Base de dados de pacientes ambulatoriais (n=403, 2020-2024)\nNota: Valores faltantes não foram incluídos"| __truncated__
7. Anotações
Anotações são setas, retângulos e textos que destacam pontos importantes.
Ver código R
# Gráfico com anotações para destaquepacientes |>ggplot(aes(x = idade, y = glicose, color = sexo)) +geom_point(size =3, alpha =0.6) +scale_color_manual(values = paleta_sexo) +# Anotação: seta indicando valor altoannotate("segment",x =65, xend =62,y =190, yend =175,arrow =arrow(length =unit(0.3, "cm")),color ="red", size =1) +annotate("text",x =66, y =192,label ="Glicose\nelevada\n(pré-diabetes)",color ="red", fontface ="bold",size =3.5, hjust =0) +# Anotação: retângulo destacando zona de riscoannotate("rect",xmin =50, xmax =75,ymin =140, ymax =200,alpha =0.1, fill ="red",color ="red", linetype ="dashed") +annotate("text",x =62.5, y =145,label ="Zona de\nRisco",color ="red", fontface ="bold",size =3.5, hjust =0.5) +labs(title ="Glicose de Jejum vs Idade",x ="Idade (anos)",y ="Glicose (mg/dL)",color ="Sexo" ) +tema_graficos()
Quiz de Verificação
Teste sua compreensão dos elementos de um gráfico:
Pergunta 1: Qual é o propósito principal de um título em um gráfico?
Ocupar espaço no topo
Comunicar claramente o que o gráfico mostra
Seguir convenção de publicação
Ambas B e C
Pergunta 2: Quando você mapeia uma variável a uma estética (como cor ou tamanho), o que você precisa incluir?
Apenas a legenda
Uma nota de rodapé explicando
Tanto a legenda quanto a nota de rodapé
Nenhum dos anteriores
Pergunta 3: Qual elemento do gráfico é ESSENCIAL para explicar de onde vieram os dados?