DATASET MPG DO PACOTE GGPLOT2

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)
  )

Scatter plot

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

BOXPLOT

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)"
)