R/desenha-crescimento.R

Defines functions desenha_crescimento

Documented in desenha_crescimento

#' @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)
}
mellohenrique/codeplan.boletim2 documentation built on March 20, 2022, 3:15 a.m.