Qual Gráfico Devo Usar?

Fluxograma de decisão

Autor

Henrique Alvarenga da Silva

Data de Publicação

Invalid Date

Introdução

Escolher o gráfico correto é uma das habilidades mais importantes na visualização de dados. O gráfico certo comunica seu mensagem de forma clara e eficiente; o gráfico errado pode obscurecer padrões importantes ou levar a conclusões incorretas.

Neste capítulo, exploraremos um fluxograma de decisão que o guiará através das escolhas principais: Quantas variáveis você tem? Qual é o tipo de cada variável? O que você quer comunicar com seus dados?

Este fluxograma conecta-se diretamente à Gramática dos Gráficos. Lembre-se de que toda visualização mapeia variáveis a estéticas (position, cor, tamanho, forma) e depois escolhe um geom (ponto, linha, barra, etc.). O fluxograma a seguir essencialmente codifica essa lógica de mapeamento.


O Fluxograma de Decisão

Comece respondendo a pergunta inicial: Quantas variáveis você deseja visualizar?

graph TD
    A["Quantas variáveis<br/>você deseja visualizar?"] -->|1 variável| B["Qual é o tipo<br/>de dados?"]
    A -->|2 variáveis| C["Qual é a combinação<br/>de tipos?"]
    A -->|3+ variáveis| D["Quais são os tipos<br/>de dados?"]

    B -->|Categórica| E["Quantas<br/>categorias?"]
    B -->|Numérica| F["O que deseja<br/>mostrar?"]

    E -->|2-5 categorias| G["📊 Gráfico de Barras<br/>Cap 5"]
    E -->|Muitas categorias| H["📊 Gráfico de Barras<br/>Horizontal<br/>Cap 5"]
    E -->|Proporção do todo| I["🥧 Gráfico de Pizza<br/>com ressalvas<br/>Cap 4"]

    F -->|Distribuição| J["📈 Histograma<br/>Cap 6"]
    F -->|Distribuição| K["📊 Densidade<br/>Cap 7"]
    F -->|Resumo por grupos| L["📦 Boxplot<br/>Cap 8"]

    C -->|Ambas numéricas| M["📍 Scatter Plot<br/>Cap 9"]
    C -->|Numérica +<br/>Categórica| N["📦 Boxplot<br/>Cap 8"]
    C -->|Numérica +<br/>Categórica| O["📊 Barras de<br/>Médias<br/>Cap 5"]
    C -->|Ambas categóricas| P["📊 Gráfico<br/>de Barras Agrupadas<br/>Cap 5"]
    C -->|Temporal| Q["📈 Gráfico de Linha<br/>Cap 10"]

    D -->|Múltiplas variáveis| R["Considere Facets<br/>Small Multiples"]
    D -->|Cor como dimensão| S["Use cor para<br/>codificar uma<br/>variável categórica"]
    D -->|Tamanho como dim.| T["Use tamanho para<br/>codificar uma<br/>variável numérica"]

    R --> U["📊 Combine com<br/>uma das opções<br/>acima"]
    S --> U
    T --> U

    style A fill:#e1f5ff
    style G fill:#fff3e0
    style H fill:#fff3e0
    style I fill:#fff3e0
    style J fill:#fff3e0
    style K fill:#fff3e0
    style L fill:#fff3e0
    style M fill:#fff3e0
    style N fill:#fff3e0
    style O fill:#fff3e0
    style P fill:#fff3e0
    style Q fill:#fff3e0


Tabela de Referência Rápida

Aqui está uma tabela abrangente que resume as decisões mais comuns em pesquisa médica:

Objetivo Tipo de Dado Número de Variáveis Gráfico Recomendado Capítulo Notas
Mostrar distribuição de uma variável categórica Categórica 1 Gráfico de Barras 5 Use horizontal para muitas categorias
Mostrar proporção do todo Categórica 1 Pizza (com ressalvas) 4 Evite se possível; barras são melhores
Mostrar distribuição de uma variável numérica Numérica 1 Histograma 6 Mostra intervalos e frequências
Mostrar densidade de uma variável numérica Numérica 1 Densidade 7 Mais suave que histograma
Resumir uma variável por grupos Numérica + Categórica 2 Boxplot 8 Mostra quartis e outliers
Comparar médias entre grupos Numérica + Categórica 2 Barras de Médias 5 Simples mas pode ocultar distribuição
Mostrar relação entre duas variáveis numéricas Ambas Numéricas 2 Scatter Plot 9 Busque correlações e agrupamentos
Comparar duas variáveis categóricas Ambas Categóricas 2 Barras Agrupadas 5 Mostre frequências cruzadas
Mostrar tendência ao longo do tempo Numérica + Temporal 2 Gráfico de Linha 10 Ideal para séries temporais
Visualizar 3+ variáveis simultaneamente Múltiplos 3+ Facets / Small Multiples 11 Combine com um gráfico base
Codificar dimensão extra com cor Categórica 3+ Scatter + Cor 9, 12 Use paleta apropriada
Codificar dimensão extra com tamanho Numérica 3+ Scatter + Tamanho 9, 13 Cuidado com percepção de área

Versão Interativa com Observable JS

Responda as perguntas abaixo para obter uma recomendação personalizada:

Ver código R
viewof numVariaveis = Inputs.radio(
  ["1 variável", "2 variáveis", "3 ou mais variáveis"],
  { value: "1 variável", label: "1. Quantas variáveis você deseja visualizar?" }
)
Ver código R
viewof tipoVariavel = {
  if (numVariaveis === "1 variável") {
    return Inputs.radio(
      ["Categórica", "Numérica"],
      { value: "Categórica", label: "2. Qual é o tipo de dados?" }
    );
  }
  if (numVariaveis === "2 variáveis") {
    return Inputs.radio(
      ["Ambas numéricas", "Uma numérica + Uma categórica", "Ambas categóricas", "Temporal (tempo no eixo X)"],
      { value: "Ambas numéricas", label: "2. Qual é a combinação de tipos?" }
    );
  }
  return Inputs.radio(
    ["Usar facets (pequenos múltiplos)", "Usar cor para dimensão extra", "Usar tamanho para dimensão extra"],
    { value: "Usar facets (pequenos múltiplos)", label: "2. Como deseja codificar as variáveis extras?" }
  );
}
Ver código R
viewof detalhe = {
  if (numVariaveis === "1 variável" && tipoVariavel === "Categórica") {
    return Inputs.radio(
      ["2-5 categorias", "Muitas categorias", "Proporção do todo"],
      { value: "2-5 categorias", label: "3. Quantas categorias?" }
    );
  }
  if (numVariaveis === "1 variável" && tipoVariavel === "Numérica") {
    return Inputs.radio(
      ["Mostrar distribuição completa", "Mostrar densidade", "Resumir por grupos"],
      { value: "Mostrar distribuição completa", label: "3. O que deseja mostrar?" }
    );
  }
  return Inputs.radio(["(Não se aplica)"], { value: "(Não se aplica)", label: " " });
}
Ver código R
recomendacao = {
  // 1 variável categórica
  if (numVariaveis === "1 variável" && tipoVariavel === "Categórica") {
    if (detalhe === "2-5 categorias") return { tipo: "Gráfico de Barras", capitulo: "Ver: Gráfico de Barras", descricao: "Use barras verticais para mostrar a frequência de cada categoria.", obs: "Simples, claro e eficaz para a maioria das situações." };
    if (detalhe === "Muitas categorias") return { tipo: "Gráfico de Barras Horizontal", capitulo: "Ver: Gráfico de Barras", descricao: "Barras horizontais dão mais espaço para rótulos longos.", obs: "Ideal quando você tem muitas categorias ou nomes longos." };
    if (detalhe === "Proporção do todo") return { tipo: "Pizza (com ressalvas)", capitulo: "Ver: Gráfico de Pizza", descricao: "Gráfico de pizza mostra proporções do todo.", obs: "Cuidado: barras são frequentemente mais claras. Use pizza apenas se houver poucos grupos." };
  }
  // 1 variável numérica
  if (numVariaveis === "1 variável" && tipoVariavel === "Numérica") {
    if (detalhe === "Mostrar distribuição completa") return { tipo: "Histograma", capitulo: "Ver: Histograma", descricao: "Mostra a distribuição de uma variável numérica em intervalos (bins).", obs: "Escolha a largura dos bins com cuidado." };
    if (detalhe === "Mostrar densidade") return { tipo: "Gráfico de Densidade", capitulo: "Ver: Gráfico de Densidade", descricao: "Versão suavizada do histograma.", obs: "Mais elegante que histograma, melhor para comparações entre grupos." };
    if (detalhe === "Resumir por grupos") return { tipo: "Boxplot", capitulo: "Ver: Boxplot", descricao: "Mostra quartis, mediana e outliers de uma variável por grupo.", obs: "Compacto e informativo." };
  }
  // 2 variáveis
  if (numVariaveis === "2 variáveis") {
    if (tipoVariavel === "Ambas numéricas") return { tipo: "Scatter Plot", capitulo: "Ver: Scatter Plot", descricao: "Mostra a relação entre duas variáveis numéricas.", obs: "Procure correlações, agrupamentos e outliers." };
    if (tipoVariavel === "Uma numérica + Uma categórica") return { tipo: "Boxplot", capitulo: "Ver: Boxplot", descricao: "Boxplot mostra distribuição completa por grupo.", obs: "Prefira boxplot a barras de médias — mostra mais informação." };
    if (tipoVariavel === "Ambas categóricas") return { tipo: "Barras Agrupadas", capitulo: "Ver: Gráfico de Barras", descricao: "Compara frequências de duas variáveis categóricas.", obs: "Bom para tabelas de contingência." };
    if (tipoVariavel === "Temporal (tempo no eixo X)") return { tipo: "Gráfico de Linha", capitulo: "Ver: Gráfico de Linha", descricao: "Mostra como uma variável muda ao longo do tempo.", obs: "Natural para séries temporais." };
  }
  // 3+ variáveis
  if (numVariaveis === "3 ou mais variáveis") {
    if (tipoVariavel === "Usar facets (pequenos múltiplos)") return { tipo: "Facets / Small Multiples", capitulo: "Ver: Princípios de Tufte", descricao: "Divida em painéis por uma variável categórica.", obs: "Poderoso para visualizar interações." };
    if (tipoVariavel === "Usar cor para dimensão extra") return { tipo: "Scatter ou Barras com Cor", capitulo: "Ver: Scatter Plot e Barras", descricao: "Use cor para representar uma variável categórica adicional.", obs: "Máximo 5-7 cores. Cuidado com daltonismo." };
    if (tipoVariavel === "Usar tamanho para dimensão extra") return { tipo: "Scatter com Tamanho (Bubble Chart)", capitulo: "Ver: Scatter Plot", descricao: "Use tamanho dos pontos para uma variável numérica adicional.", obs: "A percepção humana de área não é linear." };
  }
  return { tipo: "", capitulo: "", descricao: "", obs: "" };
}
Ver código R
html`
<div style="border: 2px solid #2563EB; padding: 20px; border-radius: 8px; margin-top: 20px; background-color: #DBEAFE;">
  <h3 style="color: #1D4ED8; margin-top: 0;">Recomendação</h3>
  <p><strong>Tipo de gráfico:</strong> ${recomendacao.tipo || "Selecione as opções acima"}</p>
  <p><strong>Referência:</strong> ${recomendacao.capitulo}</p>
  <p>${recomendacao.descricao}</p>
  <p><em>${recomendacao.obs}</em></p>
</div>
`

Conexão com a Gramática dos Gráficos

Lembre-se: toda visualização de dados segue este padrão:

Dados → Estéticas → Geoms

  • Dados: Suas variáveis (categóricas, numéricas, temporais)
  • Estéticas: Como as variáveis são mapeadas visualmente (posição x, posição y, cor, tamanho, forma)
  • Geoms: O tipo de forma geométrica (ponto, linha, barra, etc.)

Por exemplo: - Scatter Plot: dados (x, y) → estéticas (posição x, posição y) → geom (ponto) - Barras: dados (categorias, contagens) → estéticas (posição y, largura) → geom (barra) - Boxplot: dados (grupos, valores) → estéticas (posição y, caixa) → geom (caixa + linhas)

O fluxograma acima essencialmente codifica essa lógica: ele mapeia suas variáveis às estéticas e depois sugere um geom apropriado.


Versão Resumo: Cheat Sheet

Salve esta tabela rápida como referência:

1 Variável

  • Categórica → Barras
  • Numérica → Histograma ou Densidade

2 Variáveis

  • Numérica + Numérica → Scatter
  • Numérica + Categórica → Boxplot
  • Categórica + Categórica → Barras Agrupadas
  • Tempo + Outra → Linha

3+ Variáveis

  • Facets / Small Multiples
  • Cor como terceira variável
  • Tamanho como terceira variável

Exemplos Práticos com Dados Médicos

Exemplo 1: Distribuição de Sexo em uma Amostra

Cenário: Você tem dados de 500 pacientes e quer mostrar quantos são homens vs. mulheres.

Decisão: 1. Quantas variáveis? → 1 (Sexo) 2. Qual tipo? → Categórica 3. Quantas categorias? → 2 (M/F) 4. Recomendação: Gráfico de Barras

graph LR
    A["Sexo<br/>Categórica<br/>2 categorias"] --> B["Barras"]

Por quê? Barras são claras, simples e mostram a frequência de cada grupo. Uma pizza seria aceitável aqui (apenas 2 categorias), mas barras são sempre melhores.


Exemplo 2: Distribuição de Glicemia em 403 Pacientes

Cenário: Você tem medidas de glicemia (mg/dL) para 403 pacientes e quer explorar a distribuição.

Decisão: 1. Quantas variáveis? → 1 (Glicemia) 2. Qual tipo? → Numérica 3. O que mostrar? → Distribuição completa 4. Recomendação: Histograma

graph LR
    A["Glicemia<br/>Numérica<br/>Distribuição"] --> B["Histograma"]

Por quê? O histograma mostra a frequência em intervalos, revelando se a distribuição é normal, bimodal, ou enviesada. Você pode também usar densidade para uma versão mais suave.


Exemplo 3: Circunferência de Quadril por Tipo de Corpo

Cenário: Você tem medidas de circunferência de quadril para pacientes classificados em 3 tipos de corpo (ectomorfo, mesomorfo, endomorfo).

Decisão: 1. Quantas variáveis? → 2 (Circunferência de quadril, Tipo de corpo) 2. Qual tipo? → Uma numérica + uma categórica 3. Recomendação: Boxplot

graph LR
    A["Circ. Quadril<br/>+<br/>Tipo Corpo"] --> B["Boxplot"]

Por quê? Boxplot mostra a mediana, quartis e outliers para cada grupo, permitindo comparação visual rápida. Barras de médias seriam mais simples, mas perderiam informação sobre a distribuição.


Exemplo 4: Peso vs. Circunferência de Quadril

Cenário: Você quer saber se existe correlação entre peso (kg) e circunferência de quadril (cm) em 200 pacientes.

Decisão: 1. Quantas variáveis? → 2 (Peso, Circunferência) 2. Qual tipo? → Ambas numéricas 3. Recomendação: Scatter Plot

graph LR
    A["Peso<br/>+<br/>Circunferência"] --> B["Scatter Plot"]

Por quê? Scatter plot mostra a relação entre as duas variáveis. Você pode procurar por correlação (padrão linear), agrupamentos ou outliers. Se houver muitos pontos sobrepostos, considere adicionar transparência ou densidade.


Quiz: Qual Gráfico Usar?

Teste seus conhecimentos respondendo às seguintes perguntas. Para cada cenário, identifique o gráfico recomendado e o capítulo correspondente.

Questão 1: Você é médico e coleta dados de pressão arterial (PA sistólica em mmHg) de 150 pacientes hipertensos. Deseja explorar como a PA é distribuída na amostra. Qual gráfico usar?

  1. Gráfico de Barras
  2. Histograma
  3. Scatter Plot
  4. Gráfico de Pizza

Resposta correta: b) Histograma

Você tem uma variável numérica (PA sistólica) e quer mostrar sua distribuição em intervalos. Histograma é a escolha padrão para explorar distribuições de dados contínuos.

Questão 2: Você está analisando a eficácia de um novo medicamento. Tem dados de 5 grupos de dosagem (baixa, média, alta, muito alta, controle) e quer comparar o número de pacientes que melhoraram em cada grupo. Qual gráfico usar?

  1. Boxplot
  2. Gráfico de Barras
  3. Scatter Plot
  4. Gráfico de Densidade

Resposta correta: b) Gráfico de Barras

Você tem uma variável categórica (grupos de dosagem) e quer mostrar contagens/frequências. Gráfico de barras é ideal. Como há 5 categorias, barras verticais são apropriadas.

Questão 3: Você coleta dados de IMC (índice de massa corporal) para pacientes estratificados por faixa etária (18-30, 31-50, 51-70, 70+). Quer comparar como o IMC varia em cada faixa etária, incluindo outliers. Qual gráfico usar?

  1. Scatter Plot
  2. Gráfico de Linha
  3. Boxplot
  4. Gráfico de Barras

Resposta correta: c) Boxplot

Você tem uma variável numérica (IMC) que deseja comparar entre grupos categóricos (faixas etárias). Boxplot mostra a distribuição, medianas e outliers de forma compacta. É superior a “barras de médias” porque preserva informação sobre a dispersão.

Questão 4: Você está estudando a progressão de uma doença ao longo de 12 meses. Coleta o nível de marcador inflamatório (citocinas, em pg/mL) de um grupo de pacientes a cada mês. Quer visualizar a tendência ao longo do tempo. Qual gráfico usar?

  1. Gráfico de Pizza
  2. Gráfico de Linha
  3. Histograma
  4. Barras Agrupadas

Resposta correta: b) Gráfico de Linha

Você tem dados temporais (mês) no eixo x e uma medida numérica (citocinas) no eixo y. Gráfico de linha é natural para séries temporais e enfatiza tendências.


Resumo das Decisões Principais

A escolha do gráfico certo começa com três perguntas:

  1. Quantas variáveis você deseja visualizar?
  2. Qual é o tipo (categórico, numérico, temporal)?
  3. O que deseja comunicar (distribuição, comparação, correlação, proporção)?

Respondendo essas perguntas, o fluxograma acima guia você para a escolha correta. Lembre-se:

  • Barras para categorias
  • Histograma/Densidade para distribuições numéricas
  • Boxplot para comparar distribuições entre grupos
  • Scatter para relações entre duas variáveis numéricas
  • Linha para tendências temporais
  • Facets para múltiplas variáveis

E sempre leve em conta a Gramática dos Gráficos: dados → estéticas → geoms. Um bom gráfico mapeia suas variáveis claramente às estéticas visuais e escolhe um geom que comunica seu mensagem de forma eficiente.


Capítulos Relacionados


Autor: Henrique Alvarenga da Silva Data: 2024-2025 Disciplina: Visualização de Dados para Pesquisadores Médicos

De volta ao topo