#' @title Desenha dados de variacao
#'
#' @description Avalia os dados de casos e obitos do MS e um grafico com o crescimento dos dados semanais
#'
#' @param dados data.table com os dados de variacao de casos e obitos semanais pelo MS
#'
#' @return uma lista com grafico de variacao de casos e obito
#'
#' @import ggplot2
desenha_crescimento = function(dados){
# Definindo areas para retangulo
ret_casos = as.numeric(reorder(dados$estado, dados$crescimento_casos_semana)[reorder(dados$estado, dados$crescimento_casos_semana) == "DF"])
ret_obitos = as.numeric(reorder(dados$estado, dados$crescimento_obitos_semana)[reorder(dados$estado, dados$crescimento_obitos_semana) == "DF"])
dados = dados[!(crescimento_obitos_semana %in% c(Inf, -Inf) | crescimento_casos_semana %in% c(Inf, -Inf)),]
fator_casos = .1 * max(abs(dados$crescimento_casos_semana))
fator_obitos = .1 * max(abs(dados$crescimento_obitos_semana[!dados$crescimento_obitos_semana %in% c(Inf, -Inf)]))
# Grafico de crescimento de casos
graf_crescimento_casos = ggplot(dados, aes(x = reorder(estado, crescimento_casos_semana), y = crescimento_casos_semana, fill = (estado == "DF"))) +
geom_col() +
geom_rect(aes(xmin = ret_casos - .5, xmax = ret_casos + .5, ymin = -Inf, ymax = Inf), fill = "lightgrey") +
geom_col() +
coord_flip() +
geom_label(aes(label = scales::percent(crescimento_casos_semana, accuracy = 0.01, decimal.mark = ",", big.mark = "."), x = reorder(estado, crescimento_casos_semana), y = crescimento_casos_semana + ifelse(crescimento_casos_semana > 0, fator_casos, -fator_casos)), size = 5, fill = "white") +
scale_fill_manual(values = c("#5277a4", "#59a14f")) +
scale_y_continuous(labels = scales::percent_format()) +
theme_bw() +
labs(y = "Variação percentual de novos casos semanais na última semana", x = "") +
guides(fill = "none") +
theme(text = element_text(size = 18))
# Grafico de crescimento de obitos
graf_crescimento_obitos = ggplot(dados, aes(x = reorder(estado, crescimento_obitos_semana), y = crescimento_obitos_semana, fill = (estado == "DF"))) +
geom_col() +
geom_rect(aes(xmin = ret_obitos - .5, xmax = ret_obitos + .5, ymin = -Inf, ymax = Inf), fill = "lightgrey") +
geom_col() +
coord_flip() +
geom_label(aes(label = scales::percent(crescimento_obitos_semana, accuracy = 0.01, decimal.mark = ",", big.mark = "."), x = reorder(estado, crescimento_obitos_semana), y = crescimento_obitos_semana + ifelse(crescimento_obitos_semana > 0, fator_obitos, -fator_obitos)), size = 5, fill = "white") +
scale_fill_manual(values = c("#e25658", "#59a14f")) +
scale_y_continuous(labels = scales::percent_format()) +
theme_bw() +
labs(y = "Variação percentual de novos óbitos semanais na última semana", x = "") +
guides(fill = "none") +
theme(text = element_text(size = 18))
# Definindo resultados
lista = list(graf_crescimento_casos = graf_crescimento_casos,
graf_crescimento_obitos = graf_crescimento_obitos)
# Retornando resultados
return(lista)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.