### Age, period and cohort model library (Epi) ### Midwest Firearm bdafco=read.csv2("bdafco.csv") D <- with(bdafco,tapply( D, list(A,P), sum )) Y <- with (bdafco,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit <- apc.fit(A=bdafco$A,P=bdafco$P,D=bdafco$D,Y=bdafco$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit) ###Midwest autointoxication bdaut=read.csv2("bdaut.csv") D <- with(bdaut,tapply( D, list(A,P), sum )) Y <- with (bdaut,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit2 <- apc.fit(A=bdaut$A,P=bdaut$P,D=bdaut$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit2) ###Midwest HSS bdhss=read.csv2("bdaut.csv") D <- with(bdhss,tapply( D, list(A,P), sum )) Y <- with (bdhsstapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit3 <- apc.fit(A=bdhsst$A,P=bdhss$P,D=bdhss$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit3) ### South Firearm bdafco=read.csv2("bdafco.csv") D <- with(bdafco,tapply( D, list(A,P), sum )) Y <- with (bdafco,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit4 <- apc.fit(A=bdafco$A,P=bdafco$P,D=bdafco$D,Y=bdafco$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit4) ###South autointoxication bdaut=read.csv2("bdaut.csv") D <- with(bdaut,tapply( D, list(A,P), sum )) Y <- with (bdaut,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit5 <- apc.fit(A=bdaut$A,P=bdaut$P,D=bdaut$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit5) ###South HSS bdhss=read.csv2("bdaut.csv") D <- with(bdhss,tapply( D, list(A,P), sum )) Y <- with (bdhsstapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit6 <- apc.fit(A=bdhsst$A,P=bdhss$P,D=bdhss$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit6) ### Southeast Firearm bdafco=read.csv2("bdafco.csv") D <- with(bdafco,tapply( D, list(A,P), sum )) Y <- with (bdafco,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit7 <- apc.fit(A=bdafco$A,P=bdafco$P,D=bdafco$D,Y=bdafco$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit7) ###Southeast autointoxication bdaut=read.csv2("bdaut.csv") D <- with(bdaut,tapply( D, list(A,P), sum )) Y <- with (bdaut,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit8 <- apc.fit(A=bdaut$A,P=bdaut$P,D=bdaut$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit8) ###Southeast HSS bdhss=read.csv2("bdaut.csv") D <- with(bdhss,tapply( D, list(A,P), sum )) Y <- with (bdhsstapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit9 <- apc.fit(A=bdhsst$A,P=bdhss$P,D=bdhss$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit9) ### Northeast Firearm bdafco=read.csv2("bdafco.csv") D <- with(bdafco,tapply( D, list(A,P), sum )) Y <- with (bdafco,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit10 <- apc.fit(A=bdafco$A,P=bdafco$P,D=bdafco$D,Y=bdafco$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit10) ###Northeast autointoxication bdaut=read.csv2("bdaut.csv") D <- with(bdaut,tapply( D, list(A,P), sum )) Y <- with (bdaut,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit11 <- apc.fit(A=bdaut$A,P=bdaut$P,D=bdaut$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit11) ###Northeast HSS bdhss=read.csv2("bdaut.csv") D <- with(bdhss,tapply( D, list(A,P), sum )) Y <- with (bdhsstapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit12 <- apc.fit(A=bdhsst$A,P=bdhss$P,D=bdhss$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit12) ### North Firearm bdafco=read.csv2("bdafco.csv") D <- with(bdafco,tapply( D, list(A,P), sum )) Y <- with (bdafco,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit13 <- apc.fit(A=bdafco$A,P=bdafco$P,D=bdafco$D,Y=bdafco$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit13) ###North autointoxication bdaut=read.csv2("bdaut.csv") D <- with(bdaut,tapply( D, list(A,P), sum )) Y <- with (bdaut,tapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit14 <- apc.fit(A=bdaut$A,P=bdaut$P,D=bdaut$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit14) ###Northeast HSS bdhss=read.csv2("bdaut.csv") D <- with(bdhss,tapply( D, list(A,P), sum )) Y <- with (bdhsstapply( pop1, list(A,P), sum )) R <- D/Y*(10^5) PER <- rep(1:8,each=15) dados.fit15 <- apc.fit(A=bdhsst$A,P=bdhss$P,D=bdhss$D,Y=bdaut$pop1/10^5,dist="poisson",model="ns",dr.extr="Holford",parm="ACP",ref.p=2002,ref.c=1950) apc.plot(dados.fit15) ##### Figure 1 ##Gráfico de linha # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(scales) library(patchwork) # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(scales) library(ggpubr) # Carregar os dados do arquivo Excel # Norte dados <- Nortefig1 str(dados) dados_long <- dados %>% pivot_longer( cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm "), names_to = "Means", values_to = "Rate" ) grafico1 <- ggplot(data = dados_long, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "North", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico1) ggsave("North.png", grafico1, width = 10, height = 6, dpi = 300) # Nordeste dados1 <- Nordestefig1 str(dados1) dados_long1 <- dados1 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm "), names_to = "Means", values_to = "Rate") grafico2 <- ggplot(data = dados_long1, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "Northeast", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico2) ggsave("Northeast.png", grafico2, width = 10, height = 6, dpi = 300) # Sudeste dados2 <- Sudestefig1 str(dados2) dados_long2 <- dados2 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm "), names_to = "Means", values_to = "Rate") grafico3 <- ggplot(data = dados_long2, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "Southeast", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico3) ggsave("Southeast.png", grafico3, width = 10, height = 6, dpi = 300) # Sul dados3 <- Sulfig1 str(dados3) dados_long3 <- dados3 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm "), names_to = "Means", values_to = "Rate") grafico4 <- ggplot(data = dados_long3, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "South", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico4) # Centro-Oeste dados4 <- COfig1 str(dados4) dados_long4 <- dados4 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm "), names_to = "Means", values_to = "Rate") grafico5 <- ggplot(data = dados_long4, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "Midwest", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico5) # Combinar os gráficos lado a lado plota_graficos <- ggarrange(grafico1, grafico2, grafico3, grafico4, grafico5, ncol = 5, nrow = 1, common.legend = TRUE, legend = "bottom")# Mostrar os gráficos print(plota_graficos) # Salvar o conjunto de gráficos com ajuste de largura e altura ggsave("Graficos_combinados.png", plot = plota_graficos, width = 25, height = 8, dpi = 300) # Ajuste a largura e altura conforme necessário ### Código corrigido ## Gráfico de linha # Carregar pacotes necessários library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(scales) library(patchwork) library(ggpubr) # Inspecionar dados e corrigir nomes de colunas print(colnames(Nortefig1)) print(colnames(Nordestefig1)) print(colnames(Sudestefig1)) print(colnames(Sulfig1)) print(colnames(COfig1)) # Corrigir espaços em branco nos nomes das colunas Nortefig1 <- Nortefig1 %>% rename_all(trimws) Nordestefig1 <- Nordestefig1 %>% rename_all(trimws) Sudestefig1 <- Sudestefig1 %>% rename_all(trimws) Sulfig1 <- Sulfig1 %>% rename_all(trimws) COfig1 <- COfig1 %>% rename_all(trimws) # Norte dados <- Nortefig1 str(dados) dados_long <- dados %>% pivot_longer( cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm"), names_to = "Means", values_to = "Rate" ) grafico1 <- ggplot(data = dados_long, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "North", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico1) ggsave("North.png", grafico1, width = 10, height = 6, dpi = 300) # Nordeste dados1 <- Nordestefig1 str(dados1) dados_long1 <- dados1 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm"), names_to = "Means", values_to = "Rate") grafico2 <- ggplot(data = dados_long1, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "Northeast", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico2) ggsave("Northeast.png", grafico2, width = 10, height = 6, dpi = 300) # Sudeste dados2 <- Sudestefig1 str(dados2) dados_long2 <- dados2 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm"), names_to = "Means", values_to = "Rate") grafico3 <- ggplot(data = dados_long2, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "Southeast", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico3) ggsave("Southeast.png", grafico3, width = 10, height = 6, dpi = 300) # Sul dados3 <- Sulfig1 str(dados3) dados_long3 <- dados3 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm"), names_to = "Means", values_to = "Rate") grafico4 <- ggplot(data = dados_long3, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "South", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico4) # Centro-Oeste dados4 <- COfig1 str(dados4) dados_long4 <- dados4 %>% pivot_longer(cols = c("Hanging, strangulation and suffocation", "Autointoxication", "Firearm"), names_to = "Means", values_to = "Rate") grafico5 <- ggplot(data = dados_long4, aes(x = Year, y = Rate, color = Means)) + geom_line(size = 1.5) + labs(x = "Year", y = "Mortality rate per 100,000 women", title = "Midwest", color = "Means") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 10,face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico5) # Combinar os gráficos lado a lado plota_graficos <- ggarrange(grafico1, grafico2, grafico3, grafico4, grafico5, ncol = 5, nrow = 1, common.legend = TRUE, legend = "bottom") # Mostrar os gráficos print(plota_graficos) # Salvar o conjunto de gráficos com ajuste de largura e altura ggsave("Graficos_combinados.png", plot = plota_graficos, width = 25, height = 8, dpi = 300) # Ajuste a largura e altura conforme necessário ##### Figure 2 # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(scales) library(ggpubr) library(lubridate) library(patchwork) library(viridis) # Definir função para processar dados processar_dados <- function(dados) { dados %>% pivot_longer(cols = -Cohort, names_to = "Age group", values_to = "Percentage") %>% mutate(Year = gsub("\\D", "", Cohort) %>% as.character()) %>% filter(!is.na(Percentage)) } # Definir função para criar gráficos criar_grafico <- function(data_long, title, x_labels) { ggplot(data_long, aes(x = Year, y = Percentage, color = `Age group`, group = `Age group`)) + geom_line(size = 1.1) + labs( title = title, x = "Cohort", y = "Mortality rate per 100,000 women", color = "Age group" ) + theme_minimal() + theme( plot.title = element_text(size = 10, face = "bold"), axis.title = element_text(size = 8, face = "bold"), axis.text = element_text(size = 8), axis.text.x = element_text(size = 6, angle = 45, hjust = 1), # Reduzir tamanho e rotacionar rótulos do eixo x legend.title = element_text(size = 8, face = "bold"), legend.text = element_text(size = 8), legend.position = "bottom", panel.background = element_rect(fill = "white", color = "white") # Fundo branco ) + scale_x_discrete(labels = x_labels) + scale_color_viridis_d(option = "turbo") + scale_y_continuous(limits = c(0, 10)) } # Definir os rótulos do eixo x x_labels_func <- function(cohorts) { labels <- gsub("(\\d{4})-\\d{2}(\\d{2})", "\\1-\\2", as.character(cohorts)) return(labels) } # Processar dados e criar gráficos individuais gravar_plot <- function(dados, title, file_name) { data_processed <- processar_dados(dados) x_labels <- x_labels_func(dados$Cohort) plot <- criar_grafico(data_processed, title, x_labels) print(plot) ggsave(file_name, plot, width = 10, height = 6, dpi = 300) return(plot) } # Gravar gráficos plot2 <- gravar_plot(norte, "North", "North.png") plot3 <- gravar_plot(nordeste, "Northeast", "Northeast.png") plot4 <- gravar_plot(sudeste, "Southeast", "Southeast.png") plot5 <- gravar_plot(sul, "South", "South.png") plot6 <- gravar_plot(Co, "Midwest", "Midwest.png") # Combinar os gráficos lado a lado e mover a legenda para o lado do ultimo gráfico plota_graficos <- ggarrange(plot2, plot3, plot4, plot5, plot6, ncol = 3, nrow = 2, common.legend = TRUE, legend = "right") # Posicionar a legenda à direita # Mostrar os gráficos combinadoshttp://127.0.0.1:46649/graphics/e4445084-fbba-4609-9c5a-fb821da399fd.png print(plota_graficos) # Salvar o conjunto de gráficos com ajuste de largura e altura plotfinal=ggsave("Graficos_combinados.png", plot = plota_graficos, width = 25, height = 8, dpi = 300) # Ajuste a largura e altura conforme necessário #### Figure 3 # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(scales) library(ggpubr) library(lubridate) library(patchwork) library(viridis) # Definir função para processar dados processar_dados <- function(dados) { dados %>% pivot_longer(cols = -Cohort, names_to = "Age group", values_to = "Percentage") %>% mutate(Year = gsub("\\D", "", Cohort) %>% as.character()) %>% filter(!is.na(Percentage)) } # Definir função para criar gráficos criar_grafico <- function(data_long, title, x_labels) { ggplot(data_long, aes(x = Year, y = Percentage, color = `Age group`, group = `Age group`)) + geom_line(size = 1.1) + labs( title = title, x = "Cohort", y = "Mortality rate per 100,000 women", color = "Age group" ) + theme_minimal() + theme( plot.title = element_text(size = 10, face = "bold"), axis.title = element_text(size = 8, face = "bold"), axis.text = element_text(size = 8), axis.text.x = element_text(size = 6, angle = 45, hjust = 1), # Reduzir tamanho e rotacionar rótulos do eixo x legend.title = element_text(size = 8, face = "bold"), legend.text = element_text(size = 8), legend.position = "bottom", panel.background = element_rect(fill = "white", color = "white") # Fundo branco ) + scale_x_discrete(labels = x_labels) + scale_color_viridis_d(option = "turbo") + scale_y_continuous(limits = c(0, 6.0), labels = scales::number_format(accuracy = 0.1)) # Formatar eixo Y com uma casa decimal } # Definir os rótulos do eixo x x_labels_func <- function(cohorts) { labels <- gsub("(\\d{4})-\\d{2}(\\d{2})", "\\1-\\2", as.character(cohorts)) return(labels) } # Processar dados e criar gráficos individuais gravar_plot <- function(dados, title, file_name) { data_processed <- processar_dados(dados) x_labels <- x_labels_func(dados$Cohort) plot <- criar_grafico(data_processed, title, x_labels) print(plot) ggsave(file_name, plot, width = 10, height = 6, dpi = 300) return(plot) } # Gravar gráficos plot2 <- gravar_plot(norteauto, "North", "North.png") plot3 <- gravar_plot(nordesteauto, "Northeast", "Northeast.png") plot4 <- gravar_plot(sudesteauto, "Southeast", "Southeast.png") plot5 <- gravar_plot(sulauto, "South", "South.png") plot6 <- gravar_plot(coauto, "Midwest", "Midwest.png") # Combinar os gráficos lado a lado e mover a legenda para o lado do ultimo gráfico plota_graficos <- ggarrange(plot2, plot3, plot4, plot5, plot6, ncol = 3, nrow = 2, common.legend = TRUE, legend = "right") # Posicionar a legenda à direita # Mostrar os gráficos combinadoshttp://127.0.0.1:46649/graphics/e4445084-fbba-4609-9c5a-fb821da399fd.png print(plota_graficos) # Salvar o conjunto de gráficos com ajuste de largura e altura plotfinal=ggsave("Graficos_combinados.png", plot = plota_graficos, width = 25, height = 8, dpi = 300) # Ajuste a largura e altura conforme necessário #### Figure 4 # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(scales) library(ggpubr) library(lubridate) library(patchwork) library(viridis) # Definir função para processar dados processar_dados <- function(dados) { dados %>% pivot_longer(cols = -Cohort, names_to = "Age group", values_to = "Percentage") %>% mutate(Year = gsub("\\D", "", Cohort) %>% as.character()) %>% filter(!is.na(Percentage)) } # Definir função para criar gráficos criar_grafico <- function(data_long, title, x_labels) { ggplot(data_long, aes(x = Year, y = Percentage, color = `Age group`, group = `Age group`)) + geom_line(size = 1.1) + labs( title = title, x = "Cohort", y = "Mortality rate per 100,000 women", color = "Age group" ) + theme_minimal() + theme( plot.title = element_text(size = 10, face = "bold"), axis.title = element_text(size = 8, face = "bold"), axis.text = element_text(size = 8), axis.text.x = element_text(size = 6, angle = 45, hjust = 1), # Reduzir tamanho e rotacionar rótulos do eixo x legend.title = element_text(size = 8, face = "bold"), legend.text = element_text(size = 8), legend.position = "bottom", panel.background = element_rect(fill = "white", color = "white") # Fundo branco ) + scale_x_discrete(labels = x_labels) + scale_color_viridis_d(option = "turbo") + scale_y_continuous(limits = c(0, 2.0)) } # Definir os rótulos do eixo x x_labels_func <- function(cohorts) { labels <- gsub("(\\d{4})-\\d{2}(\\d{2})", "\\1-\\2", as.character(cohorts)) return(labels) } # Processar dados e criar gráficos individuais gravar_plot <- function(dados, title, file_name) { data_processed <- processar_dados(dados) x_labels <- x_labels_func(dados$Cohort) plot <- criar_grafico(data_processed, title, x_labels) print(plot) ggsave(file_name, plot, width = 10, height = 6, dpi = 300) return(plot) } # Gravar gráficos plot2 <- gravar_plot(norteaf, "North", "North.png") plot3 <- gravar_plot(nordesteaf, "Northeast", "Northeast.png") plot4 <- gravar_plot(sudesteaf, "Southeast", "Southeast.png") plot5 <- gravar_plot(sulaf, "South", "South.png") plot6 <- gravar_plot(coaf, "Midwest", "Midwest.png") # Combinar os gráficos lado a lado e mover a legenda para o lado do ultimo gráfico plota_graficos <- ggarrange(plot2, plot3, plot4, plot5, plot6, ncol = 3, nrow = 2, common.legend = TRUE, legend = "right") # Posicionar a legenda à direita # Mostrar os gráficos combinadoshttp://127.0.0.1:46649/graphics/e4445084-fbba-4609-9c5a-fb821da399fd.png print(plota_graficos) # Salvar o conjunto de gráficos com ajuste de largura e altura plotfinal=ggsave("Graficos_combinados.png", plot = plota_graficos, width = 25, height = 8, dpi = 300) # Ajuste a largura e altura conforme necessário #### Figure 5 # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(ggpubr) library(lubridate) library(patchwork) library(viridis) library(ggpubr) library(readxl) library(tidyr) library(ggplot2) library(scales) library(dplyr) # Ler a planilha dados <- HSS # Ver a estrutura dos dados str(dados) # Adaptar os dados para o formato longo dados_long <- dados %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico1 <- ggplot(data = dados_long, aes(x = `Age group (Years)`, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Age group (Years)", y = "Mortality rate per 100,000 women", title = "Hanging, strangulation and suffocation", color = "Region") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12, face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico1) # Salvar o gráfico ggsave("MortalityRateByRegion.png", grafico1, width = 10, height = 6, dpi = 300) ### Autointoxication # Ler a planilha dados1 <- AUT # Ver a estrutura dos dados str(dados1) # Adaptar os dados para o formato longo dados_long1 <- dados1 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico3 <- ggplot(data = dados_long1, aes(x = `Age group (Years)`, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Age group (Years)", y = "Mortality rate per 100,000 women", title = "Autointoxication", color = "Region") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12, face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico3) # Salvar o gráfico ggsave("Autointoxication", grafico2, width = 10, height = 6, dpi = 300) #### Arma de fogo # Ler a planilha dados2 <- FA # Ver a estrutura dos dados str(dados2) # Ou colnames(dados2) # Adaptar os dados para o formato longo dados_long2 <- dados2 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Listar nomes das colunas colnames(dados_long2) # Nome correto da coluna nome_correto_coluna <- "Age Group (Years)" # Verifica se a coluna está presente if (!(nome_correto_coluna %in% colnames(dados_long2))) { stop(paste("A coluna `", nome_correto_coluna, "` não foi encontrada!", sep = "")) } # Criar o gráfico usando tidy evaluation grafico2 <- ggplot(data = dados_long2, aes(x = .data[[nome_correto_coluna]], y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Age group (Years)", y = "Mortality rate per 100,000 women", title = "Firearm", color = "Region") + scale_y_continuous(limits = c(0, 4.0), breaks = seq(0, 4.0, by = 0.5), labels = scales::number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12, face="bold"), axis.text.x = element_text(angle = 45, hjust = 1)) # Printar o gráfico print(grafico2) # Salvar o gráfico usando grafico2 ao invés de grafico1 ggsave("Firearm.png", grafico2, width = 10, height = 6, dpi = 300) #### Heatmap efeito do período # Instale e carregue os pacotes necessários caso ainda não estejam instalados install.packages(c("ggplot2", "reshape2", "viridis", "ggtext")) library(ggplot2) library(reshape2) library(viridis) library(ggtext) library(gridExtra) # Crie o data frame com os dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(1.200775, 1.135575, 1.073915, 1.020738, 1.000000, 1.040802, 1.146399, 1.212333), Northeast = c(1.047448, 1.003570, 0.961530, 0.935738, 1.000000, 1.131068, 0.992282, 0.975653), Southeast = c(1.211762, 1.162043, 1.113354, 1.060915, 1.000000, 0.964985, 1.090264, 1.359831), South = c(1.111874, 1.146946, 1.170283, 1.118413, 1.000000, 1.007745, 1.110441, 1.232721), Midwest = c(0.665368, 0.767871, 0.886166, 1.001718, 1.000000, 0.831263, 0.704960, 0.727092) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalizar os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores viridis heatmap <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_viridis(option = "viridis", name = "Relative Risk", direction = -1, labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Hanging, strangulation and suffocation") # Exiba o heatmap print(heatmap) ### Autointoxicação # Instale e carregue os pacotes necessários caso ainda não estejam instalados install.packages(c("ggplot2", "reshape2", "viridis", "ggtext")) library(ggplot2) library(reshape2) library(viridis) library(ggtext) library(gridExtra) # Crie o data frame com os novos dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(0.7192597, 0.685236, 0.6715359, 0.7797337, 1.0000000, 0.7729285, 0.6610171, 0.6705621), Northeast = c(1.183564, 0.9559083, 0.7919074, 0.7640731, 1.0000000, 1.5055440, 1.0894868, 0.7876651), Southeast = c(1.6036014, 1.0634235, 0.8237355, 0.8299103, 1.0000000, 1.2490123, 1.3395690, 1.1077437), South = c(2.0386762, 1.3982127, 1.0824570, 0.9695288, 1.0000000, 1.1580368, 1.4574671, 1.9142154), Midwest = c(1.1002538, 0.8948955, 0.8194573, 0.8985865, 1.0000000, 0.9787409, 0.9570620, 0.9571144) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalizar os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores viridis heatmap1 <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_viridis(option = "viridis", name = "Relative Risk", direction = -1, labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Autointoxication") # Exiba o heatmap print(heatmap1) ##### Arma de fogo install.packages(c("ggplot2", "reshape2", "viridis", "ggtext")) library(ggplot2) library(reshape2) library(viridis) library(ggtext) library(gridExtra) # Crie o data frame com os novos dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(0.8622464, 1.1780534, 1.3574838, 1.2003077, 1.0000000, 0.9648186, 1.0329851, 1.1253206), Northeast = c(0.7084493, 0.7949396, 1.0051354, 1.3033113, 1.0000000, 0.8287576, 0.8012140, 0.7947278), Southeast = c(0.7560393, 0.7345041, 0.8247971, 1.0594110, 1.0000000, 0.8132131, 0.7483423, 0.7567764), South = c(0.6881162, 0.7177084, 0.9009709, 1.2617105, 1.0000000, 0.8142756, 0.7554099, 0.7161992), Midwest = c(0.6605641, 0.8210038, 1.1024547, 1.4047811, 1.0000000, 0.8084204, 0.7959192, 0.8097788) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalize os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores viridis heatmap2 <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_viridis(option = "viridis", name = "Relative Risk", direction = -1, labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Firearm") # Exiba o heatmap print(heatmap2) # Exibir os heatmaps lado a lado grid.arrange(heatmap, heatmap1, heatmap2, ncol = 3) #### Figure 6 # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(ggpubr) library(lubridate) library(patchwork) library(viridis) library(scales) library(viridis) # Ler a planilha dados <- HSSco # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados) # Converter colunas de taxas para numéricas dados <- dados %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), as.numeric)) # Adaptar os dados para o formato longo dados_long <- dados %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico1 <- ggplot(data = dados_long, aes(x = Cohort, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Cohort", y = "Mortality per 100, women", title = "Hanging, strangulation and suffocation", color = "Region") + scale_y_continuous(limits = c(0, 22), breaks = seq(0, 22, by = 2), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 14), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico1) # Salvar o gráfico ggsave("CohortEffect.png", grafico1, width = 10, height = 6, dpi = 300) ### Period library(dplyr) library(tidyr) library(ggplot2) library(viridis) library(scales) # Carregar os dados (supondo que 'HSSper' já esteja carregado no ambiente R) dados1 <- HSSper # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados1) # Identificar e substituir espaços em branco e possíveis caracteres problemáticos dados1 <- dados1 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), ~ as.numeric(gsub(",", ".", gsub("[[:space:]]", "", .))))) # Adaptar os dados para o formato longo dados_long1 <- dados1 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico2 <- ggplot(data = dados_long1, aes(x = Period, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Period", y = "Relative risk", title = "Hanging, strangulation and suffocation", color = "Region") + scale_y_continuous(limits = c(0, 2.2), breaks = seq(0, 2.2, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico2) # Salvar o gráfico ggsave("Period effect.png", grafico1, width = 10, height = 6, dpi = 300) #### Gráfico período autointoxiação # Carregar os dados (supondo que 'AUTperr' já esteja carregado no ambiente R) dados2 <- AUTper # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados2) # Identificar e substituir espaços em branco e possíveis caracteres problemáticos dados2 <- dados2 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), ~ as.numeric(gsub(",", ".", gsub("[[:space:]]", "", .))))) # Adaptar os dados para o formato longo dados_long2 <- dados2 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico3 <- ggplot(data = dados_long2, aes(x = Period, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Period", y = "Relative risk", title = "Autointoxication", color = "Region") + scale_y_continuous(limits = c(0, 2.2), breaks = seq(0, 2.2, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico3) #### Gráfico período arma de fogo # Carregar os dados (supondo que 'FAperr' já esteja carregado no ambiente R) dados3 <- FAper # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados3) # Identificar e substituir espaços em branco e possíveis caracteres problemáticos dados3 <- dados3 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), ~ as.numeric(gsub(",", ".", gsub("[[:space:]]", "", .))))) # Adaptar os dados para o formato longo dados_long3 <- dados3 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico4 <- ggplot(data = dados_long3, aes(x = Period, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Period", y = "Relative risk", title = "Firearm", color = "Region") + scale_y_continuous(limits = c(0, 2.2), breaks = seq(0, 2.2, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico4) # Salvar o gráfico ggsave("Period effect.png", grafico1, width = 10, height = 6, dpi = 300) # Combinar os gráficos lado a lado plota_graficos <- ggarrange(grafico2, grafico3,grafico4, ncol = 3, nrow = 1, common.legend = TRUE, legend = "bottom") # Mostrar os gráficos print(plota_graficos) ## Figure 6 # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(ggpubr) library(lubridate) library(patchwork) library(viridis) library(scales) library(viridis) ###Firearm # Ler a planilha dados1 <- FAco # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados1) # Converter colunas de taxas para numéricas dados <- dados1 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), as.numeric)) # Adaptar os dados para o formato longo dados_long1 <- dados1 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico4 <- ggplot(data = dados_long1, aes(x = Cohort, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Cohort", y = "Relative risk", title = "Firearm", color = "Region") + scale_y_continuous(limits = c(0, 6), breaks = seq(0, 22, by = 2), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico4) ### AUT # Ler a planilha dados2 <- AUTco # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados2) # Converter colunas de taxas para numéricas dados1 <- dados2 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), as.numeric)) # Adaptar os dados para o formato longo dados_long2 <- dados2 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico5 <- ggplot(data = dados_long, aes(x = Cohort, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Cohort", y = "Relative risk", title = "Autointoxication", color = "Region") + scale_y_continuous(limits = c(0, 6), breaks = seq(0, 6.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 12), axis.text.x = element_text(angle = 45, hjust = 1)) print(grafico5) # Combinar os gráficos lado a lado ggarrange(grafico1,grafico5,grafico4, ncol = 2, nrow = 1, common.legend = TRUE, legend = "bottom") print(plota_graficos) #### Efeito da coorte # Carregar pacotes necessários – verifique se já estão instalados library(readxl) library(ggplot2) library(dplyr) library(tidyr) library(ggpubr) library(lubridate) library(patchwork) library(viridis) library(scales) library(viridis) # Ler a planilha dados <- HSSco # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados) # Converter colunas de taxas para numéricas dados <- dados %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), as.numeric)) # Adaptar os dados para o formato longo dados_long <- dados %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico1 <- ggplot(data = dados_long, aes(x = Cohort, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Cohort", y = "Relative risk", title = "Hanging, strangulation and suffocation", color = "Region") + scale_y_continuous(limits = c(0, 22), breaks = seq(0, 22, by = 2), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme(plot.title = element_text(size = 14), axis.text.x = element_text(angle = 45, hjust = 1,face=)) print(grafico1) ### Autointoxicação # Ler a planilha dados2 <- AUTco # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados2) # Converter colunas de taxas para numéricas dados1 <- dados2 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), as.numeric)) # Adaptar os dados para o formato longo dados_long2 <- dados2 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico5 <- ggplot(data = dados_long2, aes(x = Cohort, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Cohort", y = "Relative risk", title = "Autointoxication", color = "Region") + scale_y_continuous(limits = c(0, 6), breaks = seq(0, 6.0, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme( plot.title = element_text(size = 12, face = "bold"), # Título em negrito axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), # Texto do eixo X em negrito axis.text.y = element_text(face = "bold"), # Texto do eixo Y em negrito axis.title.x = element_text(face = "bold"), # Título do eixo X em negrito axis.title.y = element_text(face = "bold") # Título do eixo Y em negrito ) print(grafico5) ### Arma de fogo # Ler a planilha dados1 <- FAco # Ver a estrutura dos dados (descomente a linha abaixo para visualizar a estrutura dos dados) str(dados1) # Converter colunas de taxas para numéricas dados <- dados1 %>% mutate(across(c(North, Northeast, Southeast, South, Midwest), as.numeric)) # Adaptar os dados para o formato longo dados_long1 <- dados1 %>% pivot_longer(cols = c("North", "Northeast", "Southeast", "South", "Midwest"), names_to = "Region", values_to = "Rate") # Criar o gráfico grafico4 <- ggplot(data = dados_long1, aes(x = Cohort, y = Rate, color = Region, group = Region)) + geom_line(linewidth = 1.5) + labs(x = "Cohort", y = "Relative risk", title = "Firearm", color = "Region") + scale_y_continuous(limits = c(0, 6), breaks = seq(0, 6, by = 0.5), labels = number_format(accuracy = 0.1)) + theme_minimal() + theme( plot.title = element_text(size = 12, face = "bold"), # Título em negrito axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), # Texto do eixo X em negrito axis.text.y = element_text(face = "bold"), # Texto do eixo Y em negrito axis.title.x = element_text(face = "bold"), # Título do eixo X em negrito axis.title.y = element_text(face = "bold") # Título do eixo Y em negrito ) print(grafico4) ggarrange(grafico5, grafico4, ncol = 2, nrow = 1, common.legend = TRUE, legend = "bottom") ####Figure 6 # Instale e carregue os pacotes necessários caso ainda não estejam instalados install.packages(c("ggplot2", "reshape2", "viridis", "ggtext")) library(ggplot2) library(reshape2) library(viridis) library(ggtext) library(gridExtra) # Crie o data frame com os dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(1.200775, 1.135575, 1.073915, 1.020738, 1.000000, 1.040802, 1.146399, 1.212333), Northeast = c(1.047448, 1.003570, 0.961530, 0.935738, 1.000000, 1.131068, 0.992282, 0.975653), Southeast = c(1.211762, 1.162043, 1.113354, 1.060915, 1.000000, 0.964985, 1.090264, 1.359831), South = c(1.111874, 1.146946, 1.170283, 1.118413, 1.000000, 1.007745, 1.110441, 1.232721), Midwest = c(0.665368, 0.767871, 0.886166, 1.001718, 1.000000, 0.831263, 0.704960, 0.727092) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalizar os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores viridis heatmap <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_viridis(option = "viridis", name = "Relative Risk", direction = -1, labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Hanging, strangulation and suffocation") # Exiba o heatmap print(heatmap) ### Autointoxicação # Instale e carregue os pacotes necessários caso ainda não estejam instalados install.packages(c("ggplot2", "reshape2", "viridis", "ggtext")) library(ggplot2) library(reshape2) library(viridis) library(ggtext) library(gridExtra) # Crie o data frame com os novos dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(0.7192597, 0.685236, 0.6715359, 0.7797337, 1.0000000, 0.7729285, 0.6610171, 0.6705621), Northeast = c(1.183564, 0.9559083, 0.7919074, 0.7640731, 1.0000000, 1.5055440, 1.0894868, 0.7876651), Southeast = c(1.6036014, 1.0634235, 0.8237355, 0.8299103, 1.0000000, 1.2490123, 1.3395690, 1.1077437), South = c(2.0386762, 1.3982127, 1.0824570, 0.9695288, 1.0000000, 1.1580368, 1.4574671, 1.9142154), Midwest = c(1.1002538, 0.8948955, 0.8194573, 0.8985865, 1.0000000, 0.9787409, 0.9570620, 0.9571144) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalizar os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores viridis heatmap1 <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_viridis(option = "viridis", name = "Relative Risk", direction = -1, labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Autointoxication") # Exiba o heatmap print(heatmap1) ##### Arma de fogo install.packages(c("ggplot2", "reshape2", "viridis", "ggtext")) library(ggplot2) library(reshape2) library(viridis) library(ggtext) library(gridExtra) # Crie o data frame com os novos dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(0.8622464, 1.1780534, 1.3574838, 1.2003077, 1.0000000, 0.9648186, 1.0329851, 1.1253206), Northeast = c(0.7084493, 0.7949396, 1.0051354, 1.3033113, 1.0000000, 0.8287576, 0.8012140, 0.7947278), Southeast = c(0.7560393, 0.7345041, 0.8247971, 1.0594110, 1.0000000, 0.8132131, 0.7483423, 0.7567764), South = c(0.6881162, 0.7177084, 0.9009709, 1.2617105, 1.0000000, 0.8142756, 0.7554099, 0.7161992), Midwest = c(0.6605641, 0.8210038, 1.1024547, 1.4047811, 1.0000000, 0.8084204, 0.7959192, 0.8097788) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalize os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores viridis heatmap2 <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_viridis(option = "viridis", name = "Relative Risk", direction = -1, labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Firearm") # Exiba o heatmap print(heatmap2) # Exibir os heatmaps lado a lado grid.arrange(heatmap, heatmap1, heatmap2, ncol = 3) ### Tons de amarelo e vermelho # Instale e carregue os pacotes necessários caso ainda não estejam instalados install.packages(c("ggplot2", "reshape2", "ggtext")) library(ggplot2) library(reshape2) library(ggtext) library(gridExtra) # Crie o data frame com os dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(1.200775, 1.135575, 1.073915, 1.020738, 1.000000, 1.040802, 1.146399, 1.212333), Northeast = c(1.047448, 1.003570, 0.961530, 0.935738, 1.000000, 1.131068, 0.992282, 0.975653), Southeast = c(1.211762, 1.162043, 1.113354, 1.060915, 1.000000, 0.964985, 1.090264, 1.359831), South = c(1.111874, 1.146946, 1.170283, 1.118413, 1.000000, 1.007745, 1.110441, 1.232721), Midwest = c(0.665368, 0.767871, 0.886166, 1.001718, 1.000000, 0.831263, 0.704960, 0.727092) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalizar os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores gradient2 heatmap <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_gradient2(low = "yellow", mid = "orange", high = "red", midpoint = 1, name = "Relative Risk", labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Hanging, strangulation and suffocation") # Exiba o heatmap print(heatmap) # Crie o data frame com os novos dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(0.7192597, 0.685236, 0.6715359, 0.7797337, 1.0000000, 0.7729285, 0.6610171, 0.6705621), Northeast = c(1.183564, 0.9559083, 0.7919074, 0.7640731, 1.0000000, 1.5055440, 1.0894868, 0.7876651), Southeast = c(1.6036014, 1.0634235, 0.8237355, 0.8299103, 1.0000000, 1.2490123, 1.3395690, 1.1077437), South = c(2.0386762, 1.3982127, 1.0824570, 0.9695288, 1.0000000, 1.1580368, 1.4574671, 1.9142154), Midwest = c(1.1002538, 0.8948955, 0.8194573, 0.8985865, 1.0000000, 0.9787409, 0.9570620, 0.9571144) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalizar os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores gradient2 heatmap1 <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_gradient2(low = "yellow", mid = "orange", high = "red", midpoint = 1, name = "Relative Risk", labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Autointoxication") # Exiba o heatmap print(heatmap1) # Crie o data frame com os novos dados fornecidos data <- data.frame( Period = c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019"), North = c(0.8622464, 1.1780534, 1.3574838, 1.2003077, 1.0000000, 0.9648186, 1.0329851, 1.1253206), Northeast = c(0.7084493, 0.7949396, 1.0051354, 1.3033113, 1.0000000, 0.8287576, 0.8012140, 0.7947278), Southeast = c(0.7560393, 0.7345041, 0.8247971, 1.0594110, 1.0000000, 0.8132131, 0.7483423, 0.7567764), South = c(0.6881162, 0.7177084, 0.9009709, 1.2617105, 1.0000000, 0.8142756, 0.7554099, 0.7161992), Midwest = c(0.6605641, 0.8210038, 1.1024547, 1.4047811, 1.0000000, 0.8084204, 0.7959192, 0.8097788) ) # Transforme os dados para formato longo data_long <- melt(data, id.vars = "Period") # Renomeie as colunas para melhor entendimento colnames(data_long) <- c("Period", "Region", "Value") # Personalize os rótulos do eixo Y para deixar "2000-2004" em negrito y_labels <- c("1980-1984", "1985-1989", "1990-1994", "1995-1999", "2000-2004", "2005-2009", "2010-2014", "2015-2019") # Crie o heatmap usando ggplot2 e a escala de cores gradient2 heatmap2 <- ggplot(data_long, aes(x = Region, y = Period, fill = round(Value, 2))) + geom_tile(color = "white") + scale_fill_gradient2(low = "yellow", mid = "orange", high = "red", midpoint = 1, name = "Relative Risk", labels = scales::number_format(accuracy = 0.01)) + geom_text(aes(label = sprintf("%.2f", Value)), color = "black", size = 3) + # Adiciona os valores dentro dos quadrados com duas casas decimais theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1, face = "bold"), axis.text.y = element_markdown(), # Permite uso de markdown nos rótulos do eixo Y axis.title.x = element_text(face = "bold"), axis.title.y = element_text(face = "bold"), legend.title = element_text(face = "bold"), plot.title = element_text(face = "bold", hjust = 0.5) # Título centralizado e em negrito ) + scale_y_discrete(labels = y_labels) + # Aplica os rótulos personalizados do eixo Y labs(x = "Region", y = "Period", title = "Firearm") # Exiba o heatmap print(heatmap2) # Exibir os heatmaps lado a lado grid.arrange(heatmap, heatmap1, heatmap2, ncol = 3) ### Figure 8