Polícia Militar de Minas Gerais
Polícia Militar de Minas Gerais

1.1 Introdução ao ggplot2

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
ggplot(mtcars, aes(x=wt, y=mpg, color=factor(cyl)))+geom_point() + 
  labs(title="Relação entre peso e consumo de combustível",
    x="Peso do carro", 
    y="Milhas por Galão", 
    color="Cilindros") + 
  theme_minimal()

1.2 Gráficos de Barras

head(diamonds)
## # A tibble: 6 × 10
##   carat cut       color clarity depth table price     x     y     z
##   <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1  0.23 Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
## 2  0.21 Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
## 3  0.23 Good      E     VS1      56.9    65   327  4.05  4.07  2.31
## 4  0.29 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
## 5  0.31 Good      J     SI2      63.3    58   335  4.34  4.35  2.75
## 6  0.24 Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48
ggplot(diamonds, aes(x=fct_infreq(cut), fill=cut)) + geom_bar() +
  geom_text(stat="count", 
    aes(label=after_stat(count)),
    vjust = -0.5,
    size = 4,
    color = "black") +
  scale_fill_brewer(palette = "RdBu", direction = -1) +
  labs(title = "Contagem de diamantes por tipo de corte",
    x = "Corte",
    y = "Contagem de diamantes",
    fill = "Corte") +
  theme_minimal()

1.3 Customização Avançada

ggplot(diamonds, aes(x=cut, y=price, fill=cut)) + geom_boxplot(alpha=0.7) +
  scale_fill_brewer(palette="Set3") +
  labs(title="Relação do preço dos diamantes por corte",
       x="Tipo de corte",
       y="Preço") +
  theme_minimal() + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  guides(fill="none")

1.4 Conceitos Fundamentais

Questão 1: Explique a diferença entre os geoms: geom_point() e geom_jitter(). Em que situação cada um é mais apropriado?

A função geom_point() cria os pontos que são transformados em bolhas, onde o tamanho de cada bolha é determinado por uma variável numérica, permitindo visualizar três dimensões de dados simultaneamente. Contudo, pode ocorrer de pontos sobrepostos se esconderem uns dos outros, levando a perda de informação. Como só se vê um único ponto, ele pode representar várias informações.
A função geom_jitter() é essencialmente uma variação do geom_point(). Contudo, o geom_jitter() plota pontos individuais em um gráfico, aplicando uma pequena quantidade de ruído aleatório (ou "jitter") nas coordenadas de cada ponto. Ao aplicar o ruído, os pontos se espalham ligeiramente em torno de suas posições verdadeiras. Isso revela a densidade real dos dados e a distribuição de pontos em cada categoria, resolvendo o problema da sobreposição. 
    
O geom_point() é mais apropriado em gráficos de dispersão clássicos, de séries temporais ou onde o total de observações é um número baixo. Já o geom_jitter() é melhor usado em gráficos onde muitos pontos de sobreporiam em uma linha vertical, revelando a densidade. 

Questão 2: Descreva o conceito de “Gramática dos Gráficos” e como ele é implementado no ggplot2.

Gramática dos gráficos é a associação de cada componente de um gráfico a uma estrutura gramatical, semelhante à formação de uma frase. Isso possibilita a elaboração de diversos gráficos de forma mais eficiente e estruturada.

No ggplot2, os gráficos são montados por meio de camadas (ou linhas) e atribuem-se aos dados características estéticas (como tamanho, cor e opacidade), formas geométricas (como barras, linhas e pontos) e outros elementos visuais (escalas, temas e legendas). Dessa maneira, a combinação de todas as camadas resulta no gráfico final.