#' @title Desenha dados de series
#'
#' @description Desenha os dados de series de casos por primeiros sintomas e cadastro, e series de obitos por data de notificacao e data de obito
#'
#' @param lista lista com os dados de series
#'
#' @return uma lista com grafico de casos por primeiros sintomas e cadastro e obitos por data de obito e data de notificacao
#'
#' @import ggplot2
desenha_series = function(lista){
# Definindo dados de casos
dados_casos = lista[["casos"]]
cadastro = dados_casos[fonte == "Data do Cadastro",]
ps = dados_casos[fonte == "Data dos Primeiros Sintomas",]
# Definindo dados de obitos
dados_obitos = lista[["obitos"]]
ssp = dados_obitos[fonte == "Data do Óbito",]
ms = dados_obitos[fonte == "Data de Notificação",]
# Gráficos
## Casos
### Primeiros sintomas
graf_ps = ggplot() +
geom_col(data = ps[tipo == "Média móvel de 7 dias",], aes(x = data, y = casos), alpha = 0.9) +
geom_line(data = ps, aes(x = data, y = valor, color = tipo), size = 1.1) +
ggrepel::geom_label_repel(data = ps[data == max(data),], aes(x = data, label = round(valor), y = valor, color = tipo), direction = "y", nudge_x = 10, size = 6, show.legend = FALSE) +
scale_y_continuous(limits = c(0, 12000)) +
theme_bw() +
labs(x = "", y = "Casos por data de\nprimeiros sintomas", color = "Tipo de média") +
theme(legend.position="bottom", text = element_text(size = 20)) +
scale_color_manual(values = c("#5277a4", "#59a14f")) +
scale_x_date(date_breaks = "2 months", date_labels = "%b/%y")
### Cadastro
graf_cadastro = ggplot() +
geom_col(data = cadastro[tipo == "Média móvel de 7 dias",], aes(x = data, y = casos), alpha = 0.9) +
geom_line(data = cadastro, aes(x = data, y = valor, color = tipo), size = 1.1) +
ggrepel::geom_label_repel(data = cadastro[data == max(data),], aes(x = data, label = round(valor), y = valor, color = tipo), direction = "y", nudge_x = 10, size = 6, show.legend = FALSE) +
scale_y_continuous(limits = c(0, 12000)) +
theme_bw() +
labs(x = "", y = "Casos por data de cadastro", color = "Tipo de média") +
theme(legend.position="bottom", text = element_text(size = 20)) +
scale_color_manual(values = c("#5277a4", "#59a14f")) +
scale_x_date(date_breaks = "2 months", date_labels = "%b/%y")
## Obitos
### Data do obito
graf_obito_data = ggplot() +
geom_col(data = ssp[ssp$tipo == "Média móvel de 7 dias",], aes(x = data, y = casos), alpha = 0.7) +
geom_line(data = ssp, aes(x = data, y = valor, color = tipo), size = 1.1) +
ggrepel::geom_label_repel(data = ssp[ssp$data == max(ssp$data),], aes(x = data, label = ifelse(valor < 1, "<1", round(valor)), y = valor, color = tipo), nudge_x = 10, direction = "y", size = 6, show.legend = FALSE) +
theme_bw() +
scale_y_continuous(limits = c(0, 80)) +
labs(x = "", y = "Óbitos por data\ndo óbito", color = "Tipo de média") +
theme(legend.position="bottom", text = element_text(size = 20) ) +
scale_color_manual(values = c("#e25658", "#59a14f")) +
scale_x_date(date_breaks = "2 months", date_labels = "%b/%y")
### Obito MS
graf_obito_ms = ggplot() +
geom_col(data = ms[ms$tipo == "Média móvel de 7 dias",], aes(x = data, y = casos), alpha = 0.7) +
geom_line(data = ms, aes(x = data, y = valor, color = tipo), size = 1.1) +
ggrepel::geom_label_repel(data = ms[ms$data == max(ms$data),], aes(x = data, label = ifelse(valor < 1, "<1", round(valor)), y = valor, color = tipo), nudge_x = 10, direction = "y", size = 6, show.legend = FALSE) +
theme_bw() +
scale_y_continuous(limits = c(0, 80)) +
labs(x = "", y = "Óbitos por data\nde notificação", color = "Tipo de média") +
theme(legend.position="bottom", text = element_text(size = 20) ) +
scale_color_manual(values = c("#e25658", "#59a14f")) +
scale_x_date(date_breaks = "2 months", date_labels = "%b/%y")
# Definindo resultados
lista_graficos = list(
casos = gridExtra::arrangeGrob(graf_ps, graf_cadastro),
obitos = gridExtra::arrangeGrob(graf_obito_data, graf_obito_ms))
# Retorna resultados
return(lista_graficos)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.