R/desenha-mortal-letal.R

Defines functions desenha_mortal_letal

Documented in desenha_mortal_letal

#' @title Desenha grafico de mortalidade-letalidade por estado
#'
#' @description Desenha os dados de mortalidade e letalidade por estado de acordo com os dados do ministerio da educacao
#'
#' @param dados Dados do ministério da saúde (ou brasilio) de mortalidade e letalidade
#'
#' @return Um gráfico com a mortalidade letalidade por estado e para o Brasil
#'
#' @import ggplot2
#'

desenha_mortal_letal = function(dados){
  # Define dados necessarios
  dados_mortal_letal = rbind(dados[, .(populacaoTCU2019, casosAcumulado, obitosAcumulado, estado, mortalidade, letalidade)],
                           dados[,.(populacaoTCU2019 = sum(populacaoTCU2019), obitosAcumulado = sum(obitosAcumulado), casosAcumulado = sum(casosAcumulado))][, `:=`(estado = "BR", mortalidade = obitosAcumulado/populacaoTCU2019, letalidade = obitosAcumulado/casosAcumulado)])

  # Grafico de mortalidade por estado
  grafico_mortalidade = ggplot(dados_mortal_letal, aes(x = forcats::fct_reorder(estado, mortalidade), y = 100000 * mortalidade, fill = estado %in% c("BR", "DF"))) +
    coord_flip() +
    geom_col(show.legend = FALSE) +
    geom_label(aes(fill = NULL, x = estado, y = 100000 * mortalidade + 25, label = scales::number(100000 * mortalidade, accuracy = 1)), show.legend = FALSE) +
    labs(x = "", y = "Mortalidade (a cada 100 mil habitantes)") +
    scale_fill_manual(values = c("#5277a4","#aaaaaa")) +
    theme_light() +
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), text = element_text(size = 16))

  # Grafico de letalidade por estado
  grafico_letalidade = ggplot(dados_mortal_letal, aes(x = forcats::fct_reorder(estado, letalidade), y = letalidade, fill = estado %in% c("BR", "DF"))) +
    coord_flip() +
    geom_col(show.legend = FALSE) +
    geom_label(aes(fill = NULL, x = estado, y =  letalidade + 0.005, label = scales::percent(letalidade, accuracy = 0.01,  decimal.mark = ",")), show.legend = FALSE) +
    labs(x = "", y = "Mortalidade (a cada 100 mil habitantes)") +
    scale_fill_manual(values = c("#e25658","#aaaaaa")) +
    scale_y_continuous(labels = scales::percent_format(accuracy = .01, decimal.mark = ",")) +
    theme_light() +
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), text = element_text(size = 16))

  # Agrupa os gráficos
  graficos_mortal_letal = gridExtra::arrangeGrob(grafico_mortalidade, grafico_letalidade, nrow = 1)

  # Retorna Gráfico de interesse
  return(graficos_mortal_letal)
  }
mellohenrique/codeplan.boletim2 documentation built on March 20, 2022, 3:15 a.m.