As explicações são encontradas no artigo “https://towardsdatascience.com/graphics-in-r-with-ggplot2-9380cbfe116a”
Vamos transformar algumas colunas em factor, para isto, fazemos:
library("ggplot2")
dat <- ggplot2::mpg
dat <- transform(dat,
cyl = factor(cyl),
drv = factor(drv),
fl = factor(fl),
year = factor(year),
class = factor(class)
)
Criado usando geom_point. É usado para visualizar duas variáveis quantitativas.
ggplot(dat)
Perceba que não apareceu nada, apenas plotou o painel, especificamos o dataset, agora vamos especifiar as variáveis x e y com o comando aes()
ggplot(dat) + #dataset
aes(x = displ, y = hwy) #variáveis
Após definir x e y, vamos indicar o tipo de plotagem:
ggplot(dat) + #dataset
aes(x = displ, y= hwy)+ #variáveis x e y
geom_point() #tipo de plotagem
#Ao final de cada linha tem que usar o sinal de + para adicionar a próxima linha
Você pode adicionar as variáveis x e y dentro da primeira linha onde indica o dataset, sem problemas
ggplot(mpg, aes(x=displ, y=hwy))+
geom_point()
#### Line plots
Particularmente usado para time series ou finanças, criado da mesma forma, só que usando geom_line()
ggplot(dat)+
aes(x=displ, y=hwy)+
geom_line()
#### Combinação de linhas e pontos
Uma vantagem do ggplot2 é a abilidade de combinar muitos tipos de gráficos e a flexibilidade para desenha-los. Por exemplo, podemos adicionar uma linha a um gráfico de dispersão simplesmente adicionando uma camada ao gráfico de dispersão inicial:
ggplot(dat)+
aes(x=displ, y=hwy)+
geom_point()+
geom_line()
#### Histograma
Pode ser plotado usando geom_histogram()
ggplot(dat)+
aes(x=hwy)+
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Por default o número de caixas é igual a 30 mas podemos mudar isso usando o argumento
binsdentro de geom_histogram()
ggplot(dat)+
aes(x=hwy)+
geom_histogram(bins = sqrt(nrow(dat)))
#### Gráficos de densidade
Podem ser criados usando geom_density()
ggplot(dat)+
aes(x=hwy)+
geom_density()
#### Combinando histograma e densidade
Podemos plotar histograma e densidade ao mesmo tempo
ggplot(dat)+
aes(x=hwy, y= ..density..)+
geom_histogram()+
geom_density()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Também podemos plotar várias densidades
ggplot(dat)+
aes(x=hwy, color = drv, fill = drv)+
geom_density(alpha = 0.25) #adicionando transparencia
O argumento
alphafoi para adicionar transparencia
ggplot(dat)+
aes(x="", y=hwy)+
geom_boxplot()
Boxplot by factor
ggplot(dat)+
aes(x=drv, y=hwy)+
geom_boxplot()
Também é possível plotar os pontos no boxplot com
geom_jitter () e variar a largura das caixas de acordo com o tamanho (ou seja, o número de observações) de cada nível com varwidth = TRUE:
ggplot(dat)+
aes(x=drv, y=hwy)+
geom_boxplot(varwidth = TRUE)+ #Varia o tamanho das caixas de acordo com o n de obs
geom_jitter(alpha = 0.25, width = 0.2) #adiciona ruído aleatório e limita sua largura
A camada
geom_jitter () adiciona alguma variação aleatória a cada ponto para evitar que eles se sobreponham (um problema conhecido como overplotting) .Além disso, o argumento alfa adiciona alguma transparência aos pontos para manter o foco nas caixas e não nos pontos. Finalmente, também é possível dividir boxplots em vários painéis de acordo com os níveis de uma variável qualitativa:
ggplot(dat)+
aes(x=drv,y=hwy)+
geom_boxplot(varwidth = TRUE)+
geom_jitter(alpha=0.25, width = 0.2)+ #adiciona ruído aleatório e limita sua largura
facet_wrap(~year)#divide em dois paineis
Para uma visualização mais atraente, podemos adicionar algumas cores para as caixas dependendo da variável x:
ggplot(dat)+
aes(x=drv, y=hwy, fill = drv)+ #adiciona cores às caixas com fill
geom_boxplot(varwidth = TRUE)+
geom_jitter(alpha = 0.25, width = 0.2)+
facet_wrap(~year)
#### BARPLOT
Usualmente para visualizar variáveis quantitativas:
ggplot(dat)+
aes(x=drv)+
geom_bar()
ggplot(dat)+
aes(x=drv, fill = drv)+
geom_bar()
Podemos criar o barplot com duas variáveis qualitativas
ggplot(dat)+
aes(x=drv,fill = year)+
geom_bar()
Para comparar as proporções entre os grupos, é melhor fazer com que cada barra tenha a mesma altura usando position = “fill”:
ggplot(dat)+
geom_bar(aes(x=drv, fill = year), position = "fill")
Para plotar os grupos lado a lado, usamos o argumento `position = “dodge”
ggplot(dat)+
geom_bar(aes(x=drv, fill = year), position = "dodge")
#### Adicionando Labels
p <- ggplot(dat)+
aes(x=displ, y = hwy)+
geom_point()
p <- labs(
title = "Economia de combustível de 38 carros populares",
subtitle = "Período 1999-2008",
caption = "Data: ggplot2::mpg. See more at www.statsandr.com",
x = "engine displacement(litres)",
y = "Highway miles per gallon(mpg)"
)