Atividade 3 - Tidyverse (Gráficos)

Author

Amanda Beatriz Loureiro

Published

October 20, 2024

Carregamento de pacotes

Code
library(tidyverse) 
library(knitr)
library(kableExtra)
library(tidyverse)
library(tinytex)
library(ggsci)
library(ggridges)

Atividade 1

Utilizando os dados de produção de ovos nos EUA faça um gráfico mostrando a evolução do número de ovos de galinhas criadas livres (orgânicas e não-orgânicas) ao longo dos anos.

Code
egg <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-04-11/egg-production.csv')

egg <- egg %>% select(-source) %>%
  mutate(Produtividade = n_eggs/n_hens) %>% 
  separate(observed_month, into = c("year", "month", "day"),
           sep = "-")

galinhas <- ggplot(data=filter(egg, prod_process != "all"), aes(x=year, y=n_hens/1000000,
                fill = prod_process))+
  geom_boxplot()+
  facet_wrap(~prod_process, scales = "free_y")+
  labs(title= "Number os hens", subtitle = "Per million")+
  scale_fill_brewer(palette = "Pastel1")+
  theme_classic()+
  theme(axis.title = element_blank(),
        plot.background = element_rect(fill="#ffe7fe", color = NA),
        strip.background = element_rect(fill = "#fdffc8"),
        panel.background = element_rect(fill = "#eeffc8", color = "black"),
        legend.position = "none",
        plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust= 0.5))

galinhas

Code
ovos <- ggplot(data=filter(egg, prod_process != "all"), aes(x=year, y=n_eggs/1000000,
                fill = prod_process))+
  geom_boxplot()+
  facet_wrap(~prod_process, scales = "free_y")+
  labs(title= "Number os eggs", subtitle = "Per million", tag = "(a)")+
  scale_fill_brewer(palette = "Pastel2")+
  theme_classic()+
  theme(axis.title = element_blank(),
        plot.background = element_rect(fill="#ffe7fe", color = NA),
        strip.background = element_rect(fill = "#fdffc8"),
        panel.background = element_rect(fill = "#eeffc8", color = "black"),
        legend.position = "none", plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust= 0.5))

ovos

Code
library(patchwork)

#g1/g2 #um sobre o outro
painel1 <- galinhas/ovos
painel2 <- galinhas+ovos #um do lado do outro

ggsave("opcao1.jpg", painel1, dpi=200, units = "cm", width = 20, height = 25) #salvando a figura
ggsave("opcao2.pdf", painel2, units = "cm", width = 24, height = 9)

painel3 <- galinhas/ovos+
  plot_annotation(
    title = "Produção de ovos nos Estados Unidos 2016-2021",
    subtitle = "Aumento expressivo de galinhas criadas livres",
    caption = "Plot for @TidyTuesday | By Amanda B Loureiro",
    theme=theme(
      plot.background = element_rect(fill = "#eeffc8", color = NA),
      plot.title = element_text(color = "darkred")))

painel3

Code
ggsave("opcao4.pdf", painel3, units = "cm", width = 20, height = 20)

#g1
#g2

#fiz o bloxplot, retirando os "all"
#Divida os valores (n_eggs ou n_hens) por 1000000 (1 milhão) para facilitar a plotagem

Atividade 2

Utilizando os dados de produção de ovos nos EUA faça um gráfico comparando a produtividade dos diferentes tipos de processos e dos diferentes tipos de produtos.

Code
densidade <- ggplot(egg, aes(x=Produtividade, y=prod_process,
                fill=prod_type))+
  geom_density_ridges(alpha=0.5)+
  scale_fill_manual(values = c( "lightpink" , "lightblue"),
                    labels= c("Ovos Incubados", "Ovos de Mesa"))+
  scale_y_discrete(labels = c(`cage-free (organic)` = "Orgânico", `cage-free (non-organic)` ="Não-orgânico",`All` = "Todos"))+
  scale_x_continuous(expand = c(0,0))+
  labs(title = "Produtividade (ovos/galinha)",
       subtitle = "Produção orgânica se equipara a produção não orgânica")+
  theme_ridges()+
  theme(axis.title = element_blank(),
        legend.title = element_blank(),
        legend.position = c(0,0.9),
        panel.background = element_rect(fill = "#ffe6fa"),
        plot.background = element_rect(fill = "#ffe6fa"),
        panel.grid.major = element_blank(),
        legend.background = element_rect(fill = "#ffe6fa")
  )
densidade

Code
ggsave("pdf2.pdf", densidade, width = 20, height = 10, units = "cm")
#Calcule a produtividade como a razão entre o número de galinhas e o número de ovos

Atividade 3

Utilizando os dados de produção de ovos nos EUA faça um gráfico comparando a produtividade entre os meses dos anos.

Code
ax3 <- ggplot(egg, aes(x=month, y= Produtividade, 
                fill=prod_type))+
  geom_boxplot(alpha=0.6, width=0.4)+
  facet_wrap(~prod_process, ncol=1, scale="free_y")+
  theme_minimal()+
  scale_fill_manual(values = c( "lightpink" , "lightblue"))+
  labs(title = "Produtividade (ovos/galinhas)",
       subtitle = "Diminuição no mês de fevereiro",
       x="Mês", y= "Produtividade (ovos/galinha)")+
  theme(legend.title = element_blank(),
        legend.position = "top",
        panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))

ax3

Code
ggsave("exercicio3.pdf",ax3, width = 12, height = 16, unit="cm")

#Calcule a produtividade como a razão entre o número de galinhas e o número de ovos
#Veja a diferença entre os diferentes processos ou tipos de produtos!

Atividade 4

Utilizando os dados do projeto portal - que não é do ET Bilu faça um gráfico mostrando a relação linear entre o tamanho do pé e o peso dos roedores.

Code
species <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-05-02/species.csv')

library(png)

rato <- readPNG("mouse.png")
sumario <- summary(lm(meanwgt~meanhfl, data=species))

rata <- ggplot(species, aes(x=meanhfl, y=meanwgt))+
   theme_minimal()+
  geom_point(alpha=0.9, color="lightpink", size=4)+
  geom_smooth(method = "lm", se=F, color="#f312a1")+
  geom_text(label=species$scientificname,
            check_overlap = T, fontface="italic", size=3)+
 labs(x="Tamanho do pé (mm)", y="Peso corporal (g)",
       title= "Relação entre peso e tamanho do pé de roedores")+
  annotate("text", label = expression(paste(r^2, "= 0.53, p-value = 0<0.001")),
           x=45, y=15)+
  xlim(12,52)+
  annotation_raster(rato, xmin = 10, xmax = 20,
                    ymin = 100, ymax = 160)
rata

Code
ggsave("ex3.pdf", rata, width= 20, height=15, unit="cm")

Atividade 5

Utilizando os dados do projeto portal compare o peso médio e o peso dos juvenis entre os diferentes gêneros.

Code
juvenis <- species %>% separate(scientificname, into = c("Gênero", "Epíteto"), sep = " ")

species_summary <- juvenis %>%
  group_by(Gênero) %>%
  summarise(
    peso_medio = mean(meanwgt, na.rm = TRUE),
    peso_juvenil = mean(juvwgt, na.rm = TRUE)
  )

p.medio <- ggplot(species_summary, aes(x = reorder(Gênero, peso_medio), y = peso_medio)) +
  geom_bar(stat = "identity", fill = "#ffcfee") +
  coord_flip() +
  labs(title = "Peso Médio por Gênero",
       x = "Gênero
       ",
       y = "Peso Médio (g)")+
  theme_minimal()

p.medio

Code
pjuv.medio <- ggplot(species_summary, aes(x = reorder(Gênero, peso_juvenil), y = peso_juvenil)) +
  geom_bar(stat = "identity", fill = "#ffcfee") +
  coord_flip() +
  labs(title = "Peso Médio dos Juvenis por Gênero",
       x = "Gênero",
       y = "Peso Médio (g)")+
theme_minimal()
pjuv.medio

Code
visu <- pjuv.medio+p.medio
ggsave("juvenis.pdf", visu, units = "cm", width = 24, height = 9)

Atividade 6

Utilizando os dados do projeto portal compare o peso dos animais nos diferentes tratamentos para os diferentes sexos.

Code
surveys <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-05-02/surveys.csv')

surveys_filtered <- surveys %>%
  filter(!is.na(wgt), !is.na(sex), !is.na(treatment))

my.colors <- c("F" = "#ff96da", "M" = "lightblue") 

sex <- ggplot(surveys_filtered, aes(x = treatment, y = wgt, fill = sex)) +
  geom_boxplot(position = position_dodge(width = 0.75), width = 0.65, color="#b01b3f") + 
  labs(title = "Comparação do Peso dos Animais por Tratamento e Sexo", 
       x = "Tratamento", 
       y = "Peso (g)") +  
  theme_minimal()+
  scale_fill_manual(values = my.colors) 

sex

Code
ggsave("survey.pdf", sex, units = "cm", width = 24, height = 9)

Atividade 7

Utilizando os dados do projeto portal faça um gráfico comparando a relação linear entre o tamanho do pé e o peso dos roedores para os diferentes tratamentos.

Code
surveys <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-05-02/surveys.csv')

filtered_surveys <- surveys %>%
  filter(!is.na(wgt), !is.na(hfl))

sum2 <- summary(lm(wgt~hfl, data=filtered_surveys))

rato <- ggplot(surveys, aes(x=hfl, y=wgt, color=treatment))+
   theme_minimal()+
  geom_point(alpha=0.9, color="lightpink", size=4)+
  geom_smooth(method = "lm", se=F, aes(color = treatment))+
 labs(x="Comprimento do pé (mm)", y="Peso corporal (g)",
       title= "Relação entre tamanho do pé e peso de roedores")+
  annotate("text", label = expression(paste(r^2, "= 0.50, p-value = < 2.2e-16")),
           x=15, y=220)+
  xlim(0,60)

rato

Code
ggsave("raton.pdf", rato, width= 30, height=15, unit="cm")

Atividade 8

Use qualquer dataset do tidytuesday para fazer algum gráfico! Pense no que você quer visualizar com os dados e como fazer para plotar com as variáveis disponíveis (as possibilidades são inúmeras).

Code
life_expectancy <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-12-05/life_expectancy.csv')

selected_countries <- c("Brazil", "Japan", "Morocco", "South Africa", "Australia", "Zimbabwe")

filtered_data <- life_expectancy %>%
  filter(Entity %in% selected_countries)

paises <- ggplot(filtered_data, aes(x = Year, y = LifeExpectancy, color = Entity)) +
  geom_line(size = 1) +                    
  geom_point(size = 2) +                    
  labs(title = "Expectativa de Vida entre Países ao Longo dos Anos", 
       x = "Ano", 
       y = "Idade") +
  theme_minimal() +                       
  theme(legend.position = "right") +        
  scale_color_brewer(palette = "Set2")     

paises

Code
ggsave("countries.pdf", paises, width= 30, height=15, unit="cm")

END