IFSuldeMinas

Trabalho de Visualização de Dados

Dashboard



3º Sgt PM Carla de Freitas Damião
N PM: 168.894-4 / CPF: 099.532.836-64 / EMAIL:

Introdução ao GGPLOT

Exercício 1.1 — Gráfico de Dispersão

library(ggplot2)

ggplot(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"
  ) +
  scale_color_manual(values = c("4" = "purple", "6" = "blue", "8" = "green")) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 17),
    axis.title = element_text(size = 13),
    panel.grid.major = element_line(linetype = "dashed"),
    panel.grid.minor = element_line(linetype = "dashed")
  )

Exercício 1.2 - Gráfico de Barras

data("diamonds")
ggplot(data = diamonds) +
  aes(x = reorder(cut, cut, function(x) -length(x)), fill = cut) +
  geom_bar() +
  geom_text(
    stat = "count",
    aes(label = scales::number(after_stat(count), big.mark = ".", decimal.mark = ",")),
    position = position_stack(vjust = 0.5), 
    size = 4,
    fontface = "bold",   # negrito
    color = "white"      # cor do texto
  ) +
  scale_fill_brewer(palette = "Set1") +
  labs(
    title = "Contagem de Diamantes por Qualidade de Corte",
    x = "Qualidade do Corte",
    y = "Contagem de Diamantes"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 17),
    legend.position = "none"
  )

Exercício 1.3 - Boxplot

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() + labs(
    title = "Distribuição dos Preços de Diamantes por Tipo de Corte",
    x = "Tipo de Corte",
    y = "Preço (USD)"
  ) +  scale_fill_manual(values = c(
    "Fair" = "#8dd3c7",
    "Good" = "#ffffb3",
    "Very Good" = "#bebada",
    "Premium" = "#fb8072",
    "Ideal" = "#80b1d3"
  )) +
  
  theme_minimal(base_size = 13) +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, hjust = 1),
        plot.title = element_text(hjust = 0.5, size = 17)
  )

Exercício 1.4 - Conceitos Fundamentais

geom_point() X geom_jitter()

geom_point()

O geom_point() plota cada observação em sua posição exata. Quando há muitos valores repetidos, a sobreposição dos pontos dificulta a visualização.

library(ggplot2)

ggplot(diamonds, aes(x = cut, y = price)) +
  geom_point(alpha = 0.4, color = "blue") +
  labs(
    title = "geom_point(): Sobreposição de Pontos",
    x = "Tipo de Corte",
    y = "Preço"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 18),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

geom_jitter()

O geom_jitter() adiciona uma pequena variação aleatória na posição dos pontos, espalhando-os e revelando melhor a densidade dos dados. É especialmente útil quando o eixo X é categórico.

library(ggplot2)

ggplot(diamonds, aes(x = cut, y = price)) +
geom_jitter(alpha = 0.4, color = "darkred", width = 0.25) +
labs(
title = "geom_jitter(): Pontos Espalhados (sem sobreposição)",
x = "Tipo de Corte",
y = "Preço"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, size = 18),
axis.text.x = element_text(angle = 45, hjust = 1)
)

Gramática dos Gráficos

A Gramática dos Gráficos é um sistema que descreve os elementos essenciais de uma visualização, como dados, estéticas, geometrias, escalas, estatísticas, coordenadas, facetas e tema.

O ggplot2 implementa essa gramática permitindo que gráficos sejam construídos por camadas, combinando esses elementos de maneira flexível, modular e consistente.

POLÍCIA MILITAR DE MINAS GERAIS
TRABALHO PÓS GRADUAÇÃO - IFSULDEMINAS
VISUZALIÇÃO DE DADOS