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()
diamonds,
ordenado e com paleta divergentedata(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()
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
)
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 .