library(ggplot2)
library(tidyverse)
library(tidyr)
library(RColorBrewer)
library(ggsci)
library(patchwork)
library(ggtext)
library(ggridges)
library(gridExtra)
library(png)
library(patchwork)
library(ggtext)
ovos<-readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-04-11/egg-production.csv')
ovos.p<-ovos %>%
filter(prod_process!="all") %>%
mutate(n_eggs=n_eggs/1000000,n_hens=n_hens/1000000) %>%
rename("Mês observado"=observed_month, "Tipo de produto"=prod_type, "Tipo de processo"=prod_process, "N galinhas"=n_hens,"N ovos"=n_eggs, "Origem"=source) %>%
mutate(`Tipo de processo`=recode(`Tipo de processo`,all="Todos",`cage-free (non-organic)`="Não orgânico",`cage-free (organic)`="Orgânico")) %>%
separate(`Mês observado`,into = c("ano","mês","dia"),sep = "-")
ovos.p1<-ovos %>%
mutate(n_eggs=n_eggs/1000000,n_hens=n_hens/1000000) %>%
rename("Mês observado"=observed_month, "Tipo de produto"=prod_type, "Tipo de processo"=prod_process, "N galinhas"=n_hens,"N ovos"=n_eggs, "Origem"=source) %>%
mutate(`Tipo de processo`=recode(`Tipo de processo`,all="Todos",`cage-free (non-organic)`="Não orgânico",`cage-free (organic)`="Orgânico")) %>% mutate(`Tipo de produto`=recode(`Tipo de produto`,`hatching eggs`="ovos para incubação",`table eggs`="ovos de mesa")) %>%
separate(`Mês observado`,into = c("ano","mês","dia"),sep = "-")
ovos.p1<-mutate(ovos.p1,Produtividade=(`N ovos`/`N galinhas`))
g1<-ggplot(ovos.p1,aes(x=ovos.p1$ano,y=ovos.p1$`N galinhas`,fill=ovos.p1$`Tipo de processo`))+
geom_boxplot(alpha=0.5)+
facet_wrap(~ovos.p1$`Tipo de processo`,scales = "free_y")+
labs(title = "NÚMERO DE GALINHAS",subtitle = "POR MILHÃO")+
guides(fill="none")+
scale_fill_brewer(palette = "Pastel2")+
theme_classic()+
theme(axis.title = element_blank(),
plot.background = element_rect(fill="bisque", color=NA),
strip.background=element_rect(fill="cornsilk3"),
panel.background = element_rect(fill="aliceblue", color= "black"),
plot.title = element_text(colour = "darkgoldenrod2", size=22))
g2<-ggplot(ovos.p1,aes(x=ovos.p1$ano,y=ovos.p1$`N ovos`,fill=ovos.p1$`Tipo de processo`))+
geom_boxplot(alpha=0.5)+
facet_wrap(~ovos.p1$`Tipo de processo`,scales = "free_y")+
labs(title = "NÚMERO DE OVOS",subtitle = "POR MILHÃO")+
guides(fill="none")+
scale_fill_brewer(palette = "Pastel2")+
theme_classic()+
theme(axis.title = element_blank(),
plot.background = element_rect(fill="bisque", color=NA),
strip.background=element_rect(fill="cornsilk3"),
panel.background = element_rect(fill="aliceblue", color= "black"),
plot.title = element_text(colour = "darkgoldenrod2", size=22))
g3<-g1/g2+plot_annotation(title = "Produção de ovos nos Estados Unidos de 2016-2021",subtitle = "Aumento expressivo de galinhas livre",caption = "plot for @TidyTuesday")
g3Atividade03
Opção 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.
Opção 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.
Calcule a produtividade como a razão entre o número de galinhas e o número de ovos
g4<-ggplot(ovos.p1,aes(x=Produtividade,y=`Tipo de processo`,fill=`Tipo de produto`))+
geom_density_ridges(alpha=0.5)+
scale_fill_manual(values = c("#F1EB17","#F11724"),labels=c("Ovos incubados","Ovos de Mesa"))+
labs(title = "Produtividade (ovos/galinhas)",subtitle = "Produção Orgãnica se equiparam a produção tradicional")+
theme_ridges()+
theme(axis.title = element_blank(),legend.title = element_blank(),legend.position = c(0.1,0.3),panel.grid.major = element_blank(),panel.background = element_rect(fill ="#F0E9AD"),plot.background = element_rect(fill = "#F0E9AD"),legend.background = element_blank())
g4#ggsave("Opção2_live.jpg",g4,dpi = 300,width = 20,height = 12,units = "cm")Opção 3
Utilizando os dados de produção de ovos nos EUA faça um gráfico comparando a produtividade entre os meses dos anos.
Veja a diferença entre os diferentes processos ou tipos de produtos!
ovos.p<-ovos.p1 %>%
mutate(mês=recode_factor(mês,"01"="Jan","02"="Fev","03"="Mar","04"="Abr","05"="Mai","06"="Jun","07"="Jul","08"="Ago","09"="Set","10"="Out","11"="Nov","12"="Dez"),ordered=T) %>%
group_by(mês,`Tipo de produto`,`Tipo de processo`) %>% summarise(prod =mean(Produtividade))
g5<-ggplot(ovos.p,aes(y=prod,x=mês,fill=`Tipo de processo`))+
geom_bar(alpha=0.5,stat = "identity",position = position_dodge())+
scale_y_continuous(expand = c(0,0),limits = c(-10,25))+
coord_polar()+
labs(title = "Produtividade (Ovos/Galinha)")+
scale_fill_uchicago()+
theme(axis.title = element_blank(),axis.text.y = element_blank(),legend.title = element_blank(),legend.position = "bottom",axis.text.x = element_text(size = 20))
#ggsave("Option_3.jpg", g5, dpi=200, width=15, height= 15, unit="cm")
g5Opção 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.
roedor<-readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-05-02/species.csv')
summary(lm(meanwgt~meanhfl, data=roedor))
Call:
lm(formula = meanwgt ~ meanhfl, data = roedor)
Residuals:
Min 1Q Median 3Q Max
-37.816 -13.513 -4.370 3.438 94.332
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -42.4744 18.0311 -2.356 0.0294 *
meanhfl 3.4505 0.7045 4.897 1e-04 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 27.16 on 19 degrees of freedom
Multiple R-squared: 0.558, Adjusted R-squared: 0.5347
F-statistic: 23.99 on 1 and 19 DF, p-value: 1e-04
rato <- readPNG("rato.png")
g6 <- ggplot(roedor, aes(x=meanhfl, y=meanwgt))+
geom_point(alpha=0.9, color="cadetblue2", size=4)+
geom_text(label=roedor$scientificname, fontface= "italic",check_overlap = T, color="white")+
scale_x_continuous(expand=c(0,0), limits = c(0, 60), name = "Tamanho do pé (mm)", breaks = c(5,15,25,35,45,55))+
scale_y_continuous(expand=c(0,0), limits = c(0, 200), name = "Peso corporal (g)", breaks = seq(0,200, by= 50))+
geom_smooth(method="lm", color= "#ADE1EE", se=F)+
labs(title = "Relação entre o peso e tamanho do pé de roedores", subtitle = "Coeficiente de correlação = 0.54, p < 0.001")+
theme(panel.grid = element_blank(),
axis.title = element_text(color="#546063", size=20),
axis.text = element_text(size=15),
panel.background = element_rect(fill = "#546063"),
plot.background = element_rect(fill = "white", color=NA),
plot.title = element_text(colour = "black", size=20))+
annotation_raster(rato, xmin=1, xmax= 15, ymin = 125, ymax=190)
g6#ggsave("Option_4.jpg", g6, dpi=200, width=20, height= 15, unit="cm")Opção 5
Utilizando os dados do projeto portal - que não é do ET Bilu compare o peso médio e o peso dos juvenis entre os diferentes gêneros.
Use os dados de espécies
roedor1 <- roedor %>% separate(scientificname, into= c("Gêneros", "Epípeto"), sep = " ") %>% select(c(2,14,16)) %>%
pivot_longer(2:3, names_to = "weight")
ggplot(roedor1,aes(x=Gêneros,y=value,fill=weight))+
geom_boxplot()+
facet_wrap(~weight)+
scale_fill_npg(name= "Indivíduo",labels = c(" Peso Juvenil","Peso Médio"))+
theme_bw()+
labs(x="Gêneros",y="Peso dos indivíduos")+
theme(axis.text.x = element_text(family = "serif",face = "italic",color="black",size=12,angle=45,hjust=1))g7 <- ggplot(roedor1, aes(x=reorder(`Gêneros`, -value), y=value, fill=weight))+
geom_bar(width = 0.5, stat="identity", position = position_dodge())+
labs(y = "Peso médio", title = "PESO MÉDIO DE ROEDORES E DE INDIVÍDUOS", subtitle = "COMPARAÇÕES POR GÊNEROS")+
scale_y_continuous(expand=c(0,0), limits=c(0,200))+
scale_fill_manual(values = c("forestgreen","dodgerblue3"), labels = c("Jovens", "Média"))+
theme_classic()+
theme(legend.title = element_blank(),
legend.position = c(0.85, 0.8),
axis.title.x = element_blank(),
axis.text.x = element_text(face="italic", angle=30, hjust=1, color= "black"),
plot.background = element_rect(fill = "#E8EEFB", color=NA),
panel.background = element_rect(fill = "#E8EEFB", color=NA),
legend.background = element_rect(fill = "#E8EEFB", color=NA),
plot.title = element_text(colour = "black", size=15))
g7g8 <- ggplot(roedor1, aes(x=reorder(`Gêneros`, -value), y=value, fill=weight))+
geom_col(width = 0.5, position = "fill")+
labs(subtitle = "PROPORÇÃO DOS PESOS DE JOVENS E MÉDIAS")+
scale_y_continuous(expand=c(0,0),labels = scales::percent)+
scale_fill_manual(values = c("forestgreen","dodgerblue3"))+
theme_classic()+
theme(legend.position = "none",
axis.text.x = element_text(face="italic", angle=30, hjust=1, color= "black"),
axis.title = element_blank(),
plot.background = element_rect(fill = "#E8EEFB", color=NA),
panel.background = element_rect(fill = "#E8EEFB", color=NA))
g8#g9 <- g7+ g8 + plot_annotation(title = 'Roedores do Projeto Portal ', caption = 'Plot for @TidyTuesday',theme = theme( plot.title = element_markdown(size=20,colour = "black"), plot.caption = element_markdown(size=10,hjust=0,family="Ink Free"), plot.background = element_rect(fill="#E8EEFB", color=NA)))+ plot_layout(widths= c(2,1))Opção 6
Utilizando os dados do projeto portal - que não é do ET Bilu compare o peso dos animais nos diferentes tratamentos para os diferentes sexos.
roedor2 <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-05-02/surveys.csv')
ggplot(roedor2, aes(x=treatment, y=wgt, fill=treatment))+
geom_boxplot(alpha=0.5, width = 0.2, outlier.shape = NA)+
facet_wrap(~sex)roedor3 <- roedor2 %>% filter(sex != "NA")
g10 <- ggplot(roedor3, aes(x=treatment, y=wgt, fill=sex))+
geom_boxplot(alpha=0.9, width = 0.5, outlier.shape = NA, color="white")+
scale_fill_manual(values= c("seagreen3", "goldenrod"), labels = c("FÊMEAS", "MACHOS"))+
scale_x_discrete(labels = c("CONTROLE", "EXCLUSÃO", "REMOÇÃO"))+
scale_y_continuous(expand=c(0,0),limits = c(0,100), name = "Peso corporal (g)")+
labs(title = "PESO DE FÊMEAS E MACHOS NOS DIFERENTES TIPOS DE TRATAMENTO")+
theme(panel.background = element_rect(fill="cornsilk4"),
panel.grid.major = element_blank(),
panel.grid.minor.x = element_blank(),
legend.title = element_blank(),
legend.position = c(0.9, 0.9),
legend.background = element_blank(),
legend.key = element_blank(),
legend.text = element_text(color= "white", size=14),
axis.title.x = element_blank(),
axis.text = element_text(size=14, color="black"),
axis.title.y = element_text(size=14, color="black"),
plot.title = element_text(size=18, color="black"))
g10Opção 7
Utilizando os dados do projeto portal - que não é do ET Bilu faça um gráfico comparando a relação linear entre o tamanho do pé e o peso dos roedores para os diferentes tratamentos.
g11 <- ggplot(roedor2, aes(x=hfl, y=wgt))+
geom_point(alpha=0.1, aes(color= treatment))+
facet_wrap(~treatment, labeller = labeller(treatment= c(control = "Controle", exclosure= "Exclusão", removal = "Remoção")))+
stat_smooth(method='lm', formula = y~poly(x,2), color= "black", se=F)+
scale_x_continuous(expand=c(0,0), name = "Tamanho do pé (mm)")+
scale_y_continuous(expand=c(0,0), name = "Peso corporal (g)")+
labs(title = "RELAÇÃO ENTRE O PESO E TAMANHO DO PÉ DE ROEDORES", subtitle = "Comparaçao entre os diferentes tratamentos")+
scale_color_npg()+
theme(panel.grid = element_blank(),
axis.title = element_text(color="black", size=20),
axis.text = element_text(color="white", size=15),
plot.background = element_rect(fill = "darkslategray4", color=NA),
plot.title = element_text(colour = "black", size=20),
legend.position = "none",
strip.background = element_rect(fill = "darkslategray4"),
strip.text = element_text(colour = "white", size=14))
g11Opção 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)
agri <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-04-18/founder_crops.csv')
agrif1<-agri %>%
mutate(n=log(n)) %>%
filter(complete.cases(category))
ggplot(agrif1,aes(x=n,fill=category))+
geom_density(aes(alpha=0.5))+
facet_wrap(~category,scales = "free_x")+
theme(legend.title = element_blank(),legend.position = "none",
plot.background = element_rect(fill="cadetblue", color="black"),
panel.background = element_rect(fill = "gray80", color="white"),strip.background = element_rect(fill="white"))