Prova Final - Visualização de Dados

PMMG

Diretoria de Proteção Social

Hospital da Polícia Militar


Identificação do Discente


1. Exercícios Gerais — ggplot2

1.1 — Gráfico de Dispersão (mtcars)

ggplot(data = mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
    geom_point(size = 3) +
    labs(
        title = "Relação entre Peso e Consumo de Combustível",
        x = "Peso do carro (wt)",
        y = "Milhas por galão (mpg)",
        color = "Cilindros"
    ) +
    theme_minimal()+ 
  theme(
    plot.title = element_text(hjust = 0.5)
  )


1.2 — Gráfico de Barras (diamonds)

ggplot(diamonds, aes(x = reorder(cut, -table(cut)[cut]), fill = cut)) +
    geom_bar() +
    geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.3) +
    scale_fill_brewer(palette = "Spectral") +
    labs(
        title = "Contagem de Diamantes por Tipo de Corte",
        x = "Tipo de Corte",
        y = "Quantidade"
    ) +
    theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5)
  )


1.3 — Boxplot Personalizado (diamonds)

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
    geom_boxplot() +
    scale_fill_manual(values = c(
        "Fair" = "#1b9e77",
        "Good" = "#d95f02",
        "Very Good" = "#7570b3",
        "Premium" = "#e7298a",
        "Ideal" = "#66a61e"
    )) +
    labs(
        title = "Distribuição dos Preços por Tipo de Corte",
        x = "Tipo de Corte (cut)",
        y = "Preço (US$)"
    ) +
    theme_minimal() + theme(
    plot.title = element_text(hjust = 0.5)
  ) + 
    theme(
        legend.position = "none",
        axis.text.x = element_text(angle = 45, hjust = 1) 
    )


1.4 — Questões Teóricas

Diferença entre geom_point() e geom_jitter()

A diferença é a posição exata dos pontos.

  • geom_point() Plota o ponto exatamente na coordenada (x, y). Se houver 10 pessoas com a mesma idade e peso, você verá apenas um ponto, pois os outros 9 estarão escondidos atrás dele. Utiliza-se em: Variáveis numéricas precisas (ex: 1.745m, 1.812m) onde os pontos dificilmente caem no mesmo lugar.

  • geom_jitter() Adiciona um pequeno desvio aleatório para os lados e para cima. Aquele único ponto do exemplo anterior vira uma nuvem de 10 pontos próximos. Utiliza-se em: Variáveis arredondadas ou categorias (ex: meses, notas de 1 a 10). É essencial para enxergar a quantidade real de dados e evitar que pontos fiquem “encavalados”.

Gramática dos Gráficos (Grammar of Graphics)

A gramática significa que um gráfico é a soma de camadas (partes independentes que se somam):

  • Dados
  • Estéticas (aes)
  • Geometrias (geoms)
  • Estatísticas
  • Escalas
  • Coordenadas
  • Temas

No código, você não chama uma função para cada tipo de gráfico (como hist() ou boxplot()), você monta o gráfico usando o sinal de +.

o ggplot2 implementa essa lógica, permitindo construir gráficos somando camadas (+):

  • ggplot(data = …): Você diz qual é a tabela de dados.

aes(x = …, y = …): Você mapeia as colunas da tabela para os eixos (estética).

  • geom_…(): Você escolhe a forma (ponto, barra, linha).

  • facet_wrap(): (Opcional) Você divide o gráfico em vários quadrinhos.

Na prática: Se você tem um gráfico de pontos (geom_point) e quer transformá-lo em um gráfico de linhas, você só precisa trocar a palavra point por line. A base (dados e eixos) continua a mesma. Para ver a lista de todas as “peças” disponíveis, a melhor fonte é a folha de dicas (Cheatsheet) oficial do ggplot2.