Logo 3ªRPM
Logo 3ªRPM



1.1 Gráfico de dispersão (scatter plot) com o dataset mtcars

# Carregando os dados
data(mtcars)

mtcars$cyl <- as.factor(mtcars$cyl)

# Criando o gráfico
ggplot(data = mtcars, aes(x = wt, y = mpg)) +
    geom_point(aes(color = cyl), size = 3) +
    labs(
    title = "Relação entre Peso e Consumo de Combustível",
    x = "Peso do Carro (1000 lbs)",
    y = "Milhas por Galão (mpg)",
    color = "Cilindros" # Legenda
  ) +
    theme_minimal()  


1.2 Gráficos de Barras com o dataset diamonds, ordenado e com paleta divergente

data(diamonds)

# fct_infreq reordena o fator pela frequência (do mais comum para o menos comum)
ggplot(data = diamonds, aes(x = fct_infreq(cut), fill = cut)) +
    geom_bar() +
    geom_text(stat = 'count', aes(label = ..count..), vjust = -0.5) +
    scale_fill_brewer(palette = "Spectral") +
    labs(
    title = "Contagem de Diamantes por Tipo de Corte",
    subtitle = "Ordenado de forma decrescente",
    x = "Tipo de Corte",
    y = "Quantidade",
    fill = "Corte"
  ) +
    theme_classic()


1.3 Boxplot de Preço por Corte com customização de eixos e cores manuais

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot(alpha = 0.7) + # Alpha deixa a cor um pouco transparente
  scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2")) +
  labs(
    title = "Distribuição de Preços por Qualidade de Corte",
    x = "Corte",
    y = "Preço (USD)"
  ) +
  theme_light() +
  theme(
    legend.position = "none", # Remove a legenda 
    axis.text.x = element_text(angle = 45, hjust = 1) # Rotaciona o texto do eixo X
  )


1.4 Conceitos Fundamentais



Questão 1: Diferença entre geom_point() e geom_jitter()

Embora ambas as funções, geom_point() e geom_jitter(), sejam utilizadas para criar gráficos de dispersão (scatter plots) no pacote ggplot2, elas lidam com a posição dos dados de maneiras diferentes.

1. geom_point(): A Geometria de Pontos Padrão é a função clássica para criar gráficos de dispersão. Ela plota cada observação exatamente nas coordenadas (x, y) definidas pelos dados. Se houver múltiplas observações com os mesmos valores numéricos, os pontos serão desenhados uns sobre os outros (sobreposição). É ideal quando suas variáveis são contínuas (números com casas decimais, como altura 1.75m e 1.76m), onde a sobreposição é rara e a precisão da posição é o mais importante.

2. geom_jitter(): Esta função é uma variação do gráfico de dispersão projetada para resolver o problema de visualização quando muitos dados ocupam o mesmo lugar. Em dados discretos, ocorrem sobreposições onde várias observações têm exatamente os mesmos valores.No ggplot2, o jitter é a solução moderna. Ele adiciona um pequeno ruído aleatório (chamado jitter) à posição de cada ponto. Isso afasta ligeiramente os pontos que estariam empilhados, permitindo visualizar a concentração (densidade) dos dados. É mais apropriado quando você está plotando variáveis discretas (números inteiros, como contagem de cilindros) ou categóricas. Sem o jitter, você veria apenas um ponto onde, na verdade, poderiam existir dezenas de observações.

Questão 2: Conceito de “Gramática dos Gráficos” no ggplot2

O conceito de Gramática dos Gráficos (The Grammar of Graphics) foi originalmente proposto por Leland Wilkinson e sua implementação mais proeminente no R foi desenvolvida por Hadley Wickham através do pacote ggplot2.

A ideia central é que, assim como uma gramática linguística nos permite combinar palavras para formar frases complexas e com significado, a gramática dos gráficos permite construir qualquer tipo de visualização combinando componentes independentes de forma estruturada.

Em vez de memorizar comandos para “criar um gráfico de barras” ou “criar um gráfico de dispersão”, você aprende a construir o gráfico camada por camada. No ggplot2, um gráfico é a soma dessas camadas, onde cada uma controla um aspecto específico da visualização.

As 7 Camadas da Gramática (Layers)- estrutura de construção em sete camadas principais :

1 - Dados (Data): É a base de tudo. O conjunto de informações (dataframe) que contém as variáveis que você deseja visualizar .

2 - Estéticas (Aesthetics - aes): Define como os dados são vistos. É o mapeamento das variáveis para propriedades visuais, como posição nos eixos X e Y, cor, tamanho e forma .

3 - Geometrias (Geometries - geom): Determina o objeto visual que será desenhado (o “tipo” de gráfico). Por exemplo, geom_point() desenha pontos, geom_bar() desenha barras e geom_line() desenha linhas.

4 - Facetas (Facets): Permite criar múltiplos sub-gráficos (pequenos múltiplos) dividindo os dados por categorias, facilitando a comparação .

5 - Estatísticas (Statistics - stat): Realiza transformações matemáticas nos dados antes da plotagem, como contagens para histogramas ou médias para linhas de tendência .

6 - Coordenadas (Coordinates - coord): Controla o espaço onde o gráfico é desenhado. O padrão é o plano cartesiano, mas pode ser alterado para polar (para gráficos de pizza) ou mapas.

7 - Tema (Theme): Controla a aparência estética que não depende dos dados (a “tinta sem dados”). Inclui tamanho da fonte, cor do fundo, linhas de grade e posição da legenda .