library(tidyverse)
library(readxl)
<- read_excel("dados-diversos.xlsx") mg
Tipos de gráficos
Tipos de gráficos e funções
Existe uma grande diversidade de gráficos que podem ser utilizados para representar dados. Os de uso mais comum em nossas aulas são: boxplots, scatterplots, histogramas, gráficos de linha e gráficos de barra e colunas.
BoxPlot
Boxplots são úteis para estudarmos a distribuição de uma variável, principalmente quando queremos comparar várias distribuições. São frequentemente usados para representar dados numéricos, como medidas de tendência central, variabilidade e distribuição. Eles mostram a distribuição de um conjunto de dados por meio de um diagrama que inclui a mediana, quartis, outliers e limites do conjunto de dados. Os boxplots ajudam a visualizar a distribuição de um conjunto de dados e identificar possíveis outliers ou pontos de dados incomuns. Para construir um boxplot no ggplot, utilizamos a função geom_boxplot. Ele precisa dos atributos x e y, sendo que ao atributo x devemos mapear uma variável categórica.
A função geom_boxplot compreende as seguintes estéticas: • outlier.color = NA: Retira a cor de fungo do boxplot; • fill = define a cor. O nome da cor, por ser texto, deve ser escrita entre aspas; • size = (número): define o tamanho do box, retorna um vetor numérico de comprimento length(x ).
Importação de dados: sempre carregar primeiro o tidyverse e depois o pacote que irá usar para importar os dados, no caso de planilhas excel, o pacote readxl. Após isso, deve escolher a atribuição dos dados.
Visualização dos dados: como abordado na aula aunterior, o ggplot é o pacote usado para visualização dos dados. Para visualizar os dados, basta usar a função ggplot.É importante que se defina antes quem será o eixo x e y (no caso, y é o comprimento da lesão, enquanto x são os tratamentos - controle e mg2). Depois, usa a função aes (aesthetic) do que deseja que apareça no gráfico e adiciona a camada geom_point para que os dados sejam vistos em forma de pontos.
|>
mg ggplot(aes(trat, comp))+
geom_point()
Muitas vezes, ocorre a sobreposição de pontos no gráfico. Para desagregar esses pontos, usa-se a função geo_jitter(). Esta função adiciona variação aleatória aos pontos de localização do gráfico. Em outras palavras, ele “agita” ligeiramente as localizações dos pontos. Este método reduz o overplotting, pois é improvável que dois pontos com a mesma localização tenham a mesma variação aleatória. Para evitar que os dados fiquem muito dispersos, pode-se definir a largura (Width - controla a quantidade de deslocamento vertical).
|>
mg ggplot(aes(trat, comp))+
geom_jitter(width = 0.1)
Para adicionar o boxplot e mudar a visão do gráfico, basta adicionar mais uma camada, ou seja, acionar a função geom_boxplot.
|>
mg ggplot(aes(trat, comp))+
geom_boxplot()+
geom_jitter(width = 0.1)
Para tirar a cor do outlier, aumentar o tamanho dos pontos e colorir o boxplot:
<- mg |>
p_box ggplot(aes(trat, comp))+
geom_boxplot(outlier.color = NA,
fill = "orange",
size = 0.5)+
geom_jitter(width = 0.1,
height = 0,
color = "black")+
scale_y_continuous(limits = c(5,20),
n.breaks = 10)+
labs(y = "Lesion size (mm)",
x = " ")+
theme_bw()
p_box
ggsave("figs/plot2.png", bg = "white")
Para sumarizar os dados, usa-se a summarise e função media da variável comprimento. Depois disso, transforma no ggplot e muda a estética. Para adicionar a barra de erro, usa-se a função errorbar. Para omitir os comandos das colunas, basta adicionar uma # na frente da linha de comando.
<- mg |>
p_means group_by(trat) |>
summarise(comp_mean = mean(comp),
comp_sd = sd(comp)) |>
ggplot(aes(trat, comp_mean))+
#geom_col(fill = "orange",
#width = 0.5)+
geom_point()+
scale_y_continuous(limits = c(7,18),
n.breaks = 6)+
geom_errorbar(aes(ymin = comp_mean - comp_sd,
ymax = comp_mean + comp_sd,
width = 0.05))+
theme_bw()+
labs(y = "Lesion size (mm)",
x = " ")
p_means
#salvando gráfico
ggsave("figs/mean_sd.png",
width = 4,
bg = "white")
Instalando o ggthemes e carregando pacote:
library(ggthemes)
Composição de plots - Pacote PATCHWORK
O patchwork torna possível combinar ggplots diferentes e separados em um mesmo gráfico. Depois de instalar, carrega o pacote. Primeiramente, deve-se definir um nome para cada gráfico. Os nomes devem ser dados dentro do chunk de cada gráfico. O nome deve ser escolhido e o banco de dados estudado deve ser atribuído a ele, tendo logo em seguida a necessidade de inserção de um pipe. Então, para unir diferentes ggplots, é necessário utilizar o título desses ggplots separados pelo sinal de + ou pela barra reta (|).
library(patchwork)
+ p_means p_box
#ou então usar a função abaixo
| p_means p_box
# para adicionar letras A, B para identificar o grafico e adicionar titulo:
| p_means)+
(p_box plot_annotation(tag_levels = "A",
title = 'Gráficos que impressionam')
ggsave("figs/combined.png")
Gráfico de Colunas
Os gráficos de colunas são usados para representar dados categóricos ou discretos (que podem ser divididos em grupos ou categorias). Um gráfico de colunas pode ajudar a identificar as tendências e padrões nos dados e destacar diferenças significativas entre as categorias. Para transformar gráficos em gráficos de colunas, usa-se a função geom_col (). Para esse tipo de gráficos, vamos utilizar o conjunto de dados survey. Para inverter as barras usa-se a função coord_flip().
<- read_excel("dados-diversos.xlsx",
survey sheet = "survey")
|>
survey filter(state == "RS") |>
#Para contar o numero de ocorrencias em cada classe:
count(species) |>
ggplot(aes(species, n))+
geom_col(width = 0.4,
fill = "steelblue")+
coord_flip()+
labs(x = " ", y = "Number of isolates",
tiltle = "Horizontal bar plot",
subtitle = "Using ggplot")+
theme_bw()
ggsave("Figs/barplot.png", bg = "white")
Adição de faceta: Função facet_wrap
|>
survey filter(state == "RS") |>
count(species, residue) |>
ggplot(aes(species, n))+
geom_col(width = 0.4,
fill = "steelblue")+
coord_flip()+
facet_wrap(~residue, ncol = 1)+
labs(x = " ", y = "Number of isolates",
tiltle = "Horizontal bar plot",
subtitle = "Using ggplot")+
theme_bw()
ggsave("Figs/barplotfacet.png", bg = "white")