library(ggplot2) #Criar gráficos de vários tipos
library(dplyr) #Utilizar operadores pipes
library(rstatix) #Pacote para realizar estatística descritiva
Construindo gráficos no R
Pacotes necessários
Construindo gráficos usando o pacote ggplot2
Banco de dados
A elaboração dos gráficos neste trabalho será realizada utilizando o pacote ggplot2
.
Para os exemplos apresentados, será utilizado o banco de dados dados
, que contém as seguintes variáveis:
- FMICO: fator relacionado à aplicação de fungo micorrízico (com ou sem inoculação);
- LIRRIG: níveis de irrigação aplicados às plantas;
- DAS: dias após a semeadura, utilizado como variável temporal para acompanhamento do desenvolvimento;
- MAP: Massa aérea da parte aérea da planta (g ou kg, dependendo da unidade utilizada no experimento);
- DPAP: desvio-padrão da massa aérea da planta, indicando a variabilidade da medida;
- MDC: massa da parte da raiz ou do caule (dependendo da nomenclatura definida no experimento);
- DPDC: desvio-padrão da massa da raiz ou caule;
- MNF: massa seca de folhas (g ou kg);
- DPNF: desvio-padrão da massa seca de folhas.
Esse banco de dados contém informações experimentais essenciais para avaliar o efeito de micorrizas e diferentes lâminas de irrigação sobre o crescimento e a produção vegetal ao longo do tempo.
Esse conjunto de informações possibilita tanto a construção de gráficos exploratórios (como boxplots e histogramas) quanto a representação de médias e grupos de comparação, atendendo às necessidades da análise estatística e da apresentação dos resultados.
Visualização do banco de dados
|> head() dados
FMICO LIRRIG DAS MAP DPAP MDC DPDC MNF DPNF
1 F0 L4 10 8.175 0.6291529 1.650 0.05773503 4.25 0.5000000
2 F0 L4 10 9.000 1.4142136 1.650 0.23804761 4.50 0.5773503
3 F0 L4 10 9.075 0.2872281 1.550 0.12909945 4.00 0.0000000
4 F0 L4 30 17.300 1.0230673 3.850 0.05773503 8.75 0.5000000
5 F0 L4 30 17.400 1.3291601 3.725 0.05000000 8.75 0.5000000
6 F0 L4 30 19.000 3.2659863 3.925 0.34034296 9.25 0.9574271
Estrutura dos dados
str(dados)
'data.frame': 81 obs. of 9 variables:
$ FMICO : Factor w/ 3 levels "F0","F1","F2": 1 1 1 1 1 1 1 1 1 1 ...
$ LIRRIG: Factor w/ 3 levels "L4","L6","L8": 1 1 1 1 1 1 1 1 1 2 ...
$ DAS : Factor w/ 3 levels "10","30","50": 1 1 1 2 2 2 3 3 3 1 ...
$ MAP : num 8.18 9 9.07 17.3 17.4 ...
$ DPAP : num 0.629 1.414 0.287 1.023 1.329 ...
$ MDC : num 1.65 1.65 1.55 3.85 3.73 ...
$ DPDC : num 0.0577 0.238 0.1291 0.0577 0.05 ...
$ MNF : num 4.25 4.5 4 8.75 8.75 9.25 9.25 9.75 10 4.25 ...
$ DPNF : num 0.5 0.577 0 0.5 0.5 ...
Gráfico de boxplot
- Variável dependente: MAP
- Variáveis independentes: FMICO, LIRRIG, DAS
Modelo 1- Simples com duas variáveis
Massa aérea da parte aérea da planta (MAP) em função de níveis de irrigação aplicados às plantas (LIRIG).
|>
dados ggplot(aes(x= LIRRIG, y=MAP))+ #Escolhe que variáveis aparecem no eixo X, Y e grupo
geom_boxplot()
Modelo 2 - Agrupado com três variáveis
Massa aérea da parte aérea da planta (MAP) em função de níveis de irrigação aplicados às plantas (LIRIG) separado por dias após a semeadura (DAS).
|>
dados ggplot(aes(x=LIRRIG, y=MAP))+ #Escolhe que variáveis aparecem no eixo X, Y e grupo
geom_boxplot()+ #Seleciona tipo de gráfico de boxplot
facet_grid(~DAS) # Agrupa gráfico por MICO
Podemos trocar e fazer o gráfico em função de DAS e separado por LIRRIG.
|>
dados ggplot(aes(x=DAS, y=MAP))+ #Escolhe que variáveis aparecem no eixo X, Y e grupo
geom_boxplot()+ #Seleciona tipo de gráfico de boxplot
facet_grid(~LIRRIG) # Agrupa gráfico por LRRIG
Modelo 3 agrupado com quatro variáveis
Massa aérea da parte aérea da planta (MAP) em função de níveis de irrigação aplicados às plantas (LIRIG) separado por dias após a semeadura (DAS) e agrupado por FMICO
|>
dados ggplot(aes(x=LIRRIG, y=MAP, fill=FMICO))+ #Escolhe que variáveis aparecem no eixo X, Y e grupo
geom_boxplot()+ #Seleciona tipo de gráfico de boxplot
facet_grid(~DAS)+ # Agrupa gráfico por DAS
theme_bw() #Estilo de gráfico
Alterando títulos dos eixos
Modelo 5
|>
dados ggplot(aes(x=LIRRIG, y=MAP, fill=FMICO))+ #Escolhe que variáveis aparecem no eixo X, Y e grupo
geom_boxplot()+ #Seleciona tipo de gráfico de boxplot
facet_grid(~DAS)+ # Agrupa gráfico por DAS
theme_bw()+ #Estilo de gráfico
xlab("Dias")+ #Altera o título do eixo X
ylab("Nome da variável no eixo y") #Altera o título do eixo Y
Gráfico de linhas e barras de erros
Para fazer gráfico de linhas, a variável no eixo X precisa ser uma variável numérica, como DAS
Modelo 1
#chama arquivo de dados
|>
dados
# Realizar o agrupamento dos dados por FMICO, LIRRIG e DAS
group_by(FMICO, LIRRIG,DAS) |>
# Calcular as estatísticas resumidas (média e erro padrão) para a coluna MAP dentro de cada grupo
get_summary_stats(MAP, type="mean_se") |>
# Criar o gráfico de linhas
ggplot(aes(x = DAS, #Variável no eixo X
y = mean, #Variável no eixo Y (essa deve ser a varável analisada (dependente))
fill = LIRRIG)) + #Variável na legenda (as linhas terão as cores agrupadas conforme essa variável)
# Adicionar as linhas de dados
geom_line(aes(
color=LIRRIG) #define as cores das linhas de acordo com LIRRIG
+
)
# Adicionar pontos nas linhas (opcional)
geom_point(aes(
color=LIRRIG) #define as cores das linhas de acordo com LIRRIG
+
)
#Adiciona barras de erros nos pontos
geom_errorbar(aes(ymax = mean + se, #Barra de erro para baixo (média - erro)
ymin = mean - se, #Barra de erro para cima (média + erro)
width=2, #define a largura da barra de erro
color=LIRRIG #define as cores das linhas de acordo com LIRRIG
+
))
#Agrupa os gráficos por FMICO
facet_grid(~FMICO)+
#Define o estilo do gráfico
theme_bw()+
#Altera título do eixo X
xlab("Nome da variável no eixo X (DAS)")+
#Altera título do eixo Y
ylab("Nome da variável no eixo Y (MAP)")
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?
Modelo 2
Adicionando letras nas linhas:
#chama arquivo de dados
|>
dados
# Realizar o agrupamento dos dados por FMICO, LIRRIG e DAS
group_by(FMICO, LIRRIG,DAS) |>
# Calcular as estatísticas resumidas (média e erro padrão) para a coluna MAP dentro de cada grupo
get_summary_stats(MAP, type="mean_se") |>
# Criar o gráfico de linhas
ggplot(aes(x = DAS, #Variável no eixo X
y = mean, #Variável no eixo Y (essa deve ser a varável analisada (dependente))
fill = LIRRIG)) + #Variável na legenda (as linhas terão as cores agrupadas conforme essa variável)
# Adicionar as linhas de dados
geom_line(aes(
color=LIRRIG) #define as cores das linhas de acordo com LIRRIG
+
)
# Adicionar pontos nas linhas (opcional)
geom_point(aes(
color=LIRRIG) #define as cores das linhas de acordo com LIRRIG
+
)
#Adiciona barras de erros nos pontos
geom_errorbar(aes(ymax = mean + se, #Barra de erro para baixo (média - erro)
ymin = mean - se, #Barra de erro para cima (média + erro)
width=2, #define a largura da barra de erro
color=LIRRIG #define as cores das linhas de acordo com LIRRIG
+
))
#Agrupa os gráficos por FMICO
facet_grid(~FMICO)+
#Define o estilo do gráfico
theme_bw()+
#Altera título do eixo X
xlab("Nome da variável no eixo X (DAS)")+
#Altera título do eixo Y
ylab("Nome da variável no eixo Y (MAP)")
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?
# Adiocionar letras acima das barras
geom_text(aes(label = c(
"a"#1
position = position_dodge(1), vjust = -1) )),
mapping: label = ~c("a")
geom_text: parse = FALSE, check_overlap = FALSE, size.unit = mm, na.rm = FALSE
stat_identity: na.rm = FALSE
position_dodge
Gráfico de pontos e barras de erros
Modelo1
|>
dados group_by(FMICO, LIRRIG, DAS) |>
get_summary_stats(MAP, type = "mean_se") |>
convert_as_factor(DAS) |>
ggplot(aes(
x = FMICO,
y = mean,
fill = LIRRIG
+
)) geom_point(aes(color = LIRRIG), position = position_dodge(width = 0.2)) +
geom_errorbar(
aes(
x = FMICO,
ymax = mean + se,
ymin = mean - se,
width = 0.1,
color = LIRRIG
),position = position_dodge(width = 0.2)
+
) facet_grid(~DAS) +
theme_bw() +
xlab("Nome da variável no eixo X (DAS)") +
ylab("Nome da variável no eixo Y (MAP)")
Modelo2
Adicionando significância entre tratamentos.
=
teste|>
dados group_by(DAS, FMICO) |>
pairwise_t_test(MAP ~ LIRRIG, p.adjust.method = "bonferroni") |>
::select(-`p`, -`p.signif`) |>
dplyradd_xy_position(x = "DAS") |>
filter(`p.adj`<0.05 )
library(ggpubr)
|>
dados group_by(FMICO, LIRRIG, DAS) |>
get_summary_stats(MAP, type = "mean_se") |>
convert_as_factor(DAS) |>
ggplot(aes(
x = FMICO,
y = mean,
fill = LIRRIG
+
)) geom_point(aes(color = LIRRIG), position = position_dodge(width = 0.2)) +
geom_errorbar(
aes(
x = FMICO,
ymax = mean + se,
ymin = mean - se,
width = 0.1,
color = LIRRIG
),position = position_dodge(width = 0.2)
+
) facet_grid(~DAS) +
theme_bw() +
xlab("Nome da variável no eixo X (DAS)") +
ylab("Nome da variável no eixo Y (MAP)")
# stat_pvalue_manual(teste, tip.length = 0, hide.ns = TRUE)
Gráfico de barras e erros
Modelo 1
|>
dados # Realizar o agrupamento dos dados por FMICO e LIRRIG
group_by(FMICO, LIRRIG) |>
# Calcular as estatísticas resumidas (média e erro padrão) para a coluna CLOA dentro de cada grupo
get_summary_stats(CLOA, type = "mean_se") |>
# Criar o gráfico de barras com barras de erro
ggplot(aes(x = FMICO, y = mean, fill = LIRRIG)) +
# Adicionar as barras de dados
geom_bar(stat = "identity", position = "dodge") +
# Adicionar as barras de erro
geom_errorbar(aes(ymax = mean + se, ymin = mean - se),
position = position_dodge(0.9), width = 0.2)+
# Definir estilo do gráfico
theme_bw()
Modelo 2
Alterando título dos eixos X e Y e alterando cores das barras:
|>
dados # Realizar o agrupamento dos dados por FMICO e LIRRIG
group_by(FMICO, LIRRIG) |>
# Calcular as estatísticas resumidas (média e erro padrão) para a coluna CLOA dentro de cada grupo
get_summary_stats(CLOA, #Selcionar a variável
type = "mean_se") |> #definir o tipo de estatística (média±erro-padrão)
# Criar o gráfico de barras com barras de erro
ggplot(aes(x = FMICO, y = mean, fill = LIRRIG)) +
# Adicionar as barras de dados
geom_bar(stat = "identity", #define que a altura das barras seja a média
position = "dodge", #define que as barras fiquem lado a lado
color = "black") + #Adiciona cotorno preto às barras
# Escolha as cores das barras manualmente (pode usar nome da cor ou código hexadecimal)
scale_fill_manual(values = c("red", "#555555", "#ffffff")) +
# Adicionar as barras de erro
geom_errorbar(aes(ymax = mean + se, ymin = mean - se),
position = position_dodge(0.9), width = 0.2)+
# Definir estilo do gráfico
theme_bw()+
#Altera título do eixo X
xlab("Nome da variável FMICO")+
#Altera título do eixo Y
ylab("Nome da variável CLOA")
Modelo 3
Adicionado letras nas barras:
|>
dados # Realizar o agrupamento dos dados por FMICO e LIRRIG
group_by(FMICO, LIRRIG) |>
# Calcular as estatísticas resumidas (média e erro padrão) para a coluna CLOA dentro de cada grupo
get_summary_stats(CLOA, #Selcionar a variável
type = "mean_se") |> #definir o tipo de estatística (média±erro-padrão)
# Criar o gráfico de barras com barras de erro
ggplot(aes(x = FMICO, y = mean, fill = LIRRIG)) +
# Adicionar as barras de dados
geom_bar(stat = "identity", #define que a altura das barras seja a média
position = "dodge", #define que as barras fiquem lado a lado
color = "black") + #Adiciona cotorno preto às barras
# Escolha as cores das barras manualmente (pode usar nome da cor ou código hexadecimal)
scale_fill_manual(values = c("red", "#555555", "#ffffff")) +
# Adicionar as barras de erro
geom_errorbar(aes(ymax = mean + se, ymin = mean - se),
position = position_dodge(0.9), width = 0.2)+
# Definir estilo do gráfico
theme_bw()+
#Altera título do eixo X
xlab("Nome da variável FMICO")+
#Altera título do eixo Y
ylab("Nome da variável CLOA")+
ylim(0,50)+ #AUmentando a escala de Y para caber as letras no gráfico
# Adiocionar letras acima das barras
geom_text(aes(label = c(
"a",#1
"b",#2
"c",#3
"d",#4
"e",#5
"f",#6
"g",#7
"h",#8
"i" #9
position = position_dodge(1), vjust = -1) )),
Modelo 4
Reduzindo a escala do gráfica
|>
dados # Realizar o agrupamento dos dados por FMICO e LIRRIG
group_by(FMICO, LIRRIG) |>
# Calcular as estatísticas resumidas (média e erro padrão) para a coluna CLOA dentro de cada grupo
get_summary_stats(CLOA, #Selcionar a variável
type = "mean_se") |> #definir o tipo de estatística (média±erro-padrão)
# Criar o gráfico de barras com barras de erro
ggplot(aes(x = FMICO, y = mean, fill = LIRRIG)) +
# Adicionar as barras de dados
geom_bar(stat = "identity", #define que a altura das barras seja a média
position = "dodge", #define que as barras fiquem lado a lado
color = "black") + #Adiciona cotorno preto às barras
# Escolha as cores das barras manualmente (pode usar nome da cor ou código hexadecimal)
scale_fill_manual(values = c("red", "#555555", "#ffffff")) +
# Adicionar as barras de erro
geom_errorbar(aes(ymax = mean + se, ymin = mean - se),
position = position_dodge(0.9), width = 0.2)+
# Definir estilo do gráfico
theme_bw()+
#Altera título do eixo X
xlab("Nome da variável FMICO")+
#Altera título do eixo Y
ylab("Nome da variável CLOA")+
#Aumentando a escala de Y para caber as letras no gráfico
#Usando coord_cartesian para definir o range e não subir as barras
coord_cartesian(ylim = c(20, 50))+
# Adiocionar letras acima das barras
geom_text(aes(label = c(
"a",#1
"b",#2
"c",#3
"d",#4
"e",#5
"f",#6
"g",#7
"h",#8
"i" #9
position = position_dodge(1), vjust = -1) )),