ECDC - Casos e óbitos por Covid-19 na União Europeia

Alemanha, Áustria, Bulgária, Bélgica, Chipre, Croácia, Dinamarca, Eslováquia, Eslovênia, Espanha, Estônia, Finlândia, França, Grécia, Holanda, Hungria, Irlanda, Itália, Letônia, Lituânia, Luxemburgo, Malta, Polônia, Portugal, República Tcheca, Romênia e Suécia

Casos de Covid-19 na União Europeia
Casos de Covid-19 na União Europeia

O gráfico acima mostra a evolução dos novos casos confirmados (últimas 24 horas) para os vinte e sete países membros da União Europeia. Pode ser observado que, embora o número de casos tenha diminuído após o primeiro pico ocorrido em fins de março e começo de abril, ocorreu um novo pico, bem maior que o primeiro, em fins de outubro e começo de novembro.

Óbitos por Covid-19 na União Europeia
Óbitos por Covid-19 na União Europeia

O gráfico acima mostra a evolução dos novos óbitos (últimas 24 horas) para os vinte e sete países membros da União Europeia. Pode ser observado que, embora o número de óbitos tenha diminuído após o pico ocorrido em abril, voltaram a subir a partir de setembro a níveis até maiores do que o de abril.

Dados

Os dados foram baixados da página Download today’s data on the geographic distribution of COVID-19 cases worldwide do European Centre for Disease Prevention and Control (ECDC). Nesta página é mostrado como os dados mais atualizados podem ser lidos diretamente pelo código R, mas também é possível baixar o arquivo CSV e ler pelo programa, para evitar múltiplos downloads, no caso de haver vários programas que acessem estes mesmos dados. O ECDC mudou para um cronograma de relatórios semanais da situação do COVID-19 na UE / EEE, Reino Unido e no restante do mundo em 17 de dezembro de 2020. Portanto, todas as atualizações diárias foram interrompidas a partir de 14 de dezembro.

Programa

Abaixo está mostrado o código do programa, escrito em R, que gera os gráficos mostrando os casos e óbitos novos (últimas 24 horas) para os vinte e sete países membros da União Europeia vistos acima. Antes de ser executado as bibliotecas utilizadas precisam ser instaladas. A opção para ler os dados diretamente na Internet está comentada, enquanto a opção para ler o arquivo CSV baixado está ativa. Pode ser usada qualquer uma das duas opões, obtendo-se os mesmos resultados, desde que o arquivo baixado esteja atualizado.

#
# source('ecdc_ue_casos_obitos.R')
#
# Programa para gerar gráficos mostrando os casos e óbitos diários por COVID-19
# nos 27 países membros da União Europeia.
# Os dados são obtidos do:
# European Centre for Disease Prevention and Control (ECDC)
# Download today’s data on the geographic distribution of COVID-19 cases worldwide
# https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distribution-covid-19-cases-worldwide
# Referências:
# Member state of the European Union
# https://en.wikipedia.org/wiki/Member_state_of_the_European_Union
# COVID-19 situation update for the EU/EEA and the UK
# https://www.ecdc.europa.eu/en/cases-2019-ncov-eueea
# The 26 countries of the Schengen area
# https://www.axa-schengen.com/en/countries-schengen-area
# Countries in the EU and EEA
# https://www.gov.uk/eu-eea
#
# Bibliotecas
library(utils)
library(lubridate)
library(scales)
library(ggplot2)
library(ggrepel)
library(gridExtra)
library(svglite)

# Ler os dados do ECDC no formato CSV
# ecdc <- read.csv("https://opendata.ecdc.europa.eu/covid19/casedistribution/csv", na.strings = "", fileEncoding = "UTF-8-BOM")
ecdc <- read.csv("~/R/dados/ecdc.csv", na.strings = "", fileEncoding = "UTF-8-BOM")

# Países da União Europeia (UE)
ue <- c("Austria", "Belgium", "Bulgaria", "Croatia", "Cyprus", "Czechia",
        "Denmark", "Estonia", "Finland", "France", "Germany", "Greece",
        "Hungary", "Ireland", "Italy", "Latvia", "Lithuania", "Luxembourg",
        "Malta", "Netherlands", "Poland", "Portugal", "Romania", "Slovakia",
        "Slovenia", "Spain", "Sweden")

# Manter apenas os dados dos países da UE e as colunas que serão usadas
dados <- subset(ecdc, countriesAndTerritories %in% ue & cases > 0,
            select = c("dateRep", "cases", "deaths", "countriesAndTerritories"))

# Verificar se todos os 27 países estão presentes nos dados
print(unique(dados$countriesAndTerritories))

# Adicionar a coluna data a partir da coluna dateRep
dados$data <- dmy(dados$dateRep)

# Data dos dados = maior data encontrada nos dados
dataDados = toString(max(dados$data))

# Ordenar os dados pela data
dados <- dados[order(dados$data), ]

# Remover os dados anteriores a 1 de março de 2020
dados <- dados[dados$data >= "2020-03-01", ]

# Somatório dos casos e óbitos por dia
europa <- aggregate(dados[,2:3], by=list(data = dados$data), FUN=sum)

# Gerar o gráfico de casos novos
plotcases <- ggplot(europa, aes(data, cases)) +
    labs(
        title = paste("Casos de Covid-19 na União Europeia entre 2020-03-01 e ", dataDados),
        caption = paste("Dados baixados do ECDC (https://www.ecdc.europa.eu/en) em", dataDados),
        x = "Data",
        y = "Casos novos (últimas 24 horas)"
    ) +
    geom_point(
        color = "blue"
    ) +
    geom_smooth(
        method = "gam",
        formula = y ~ s(x, bs = "cs"),
        se = FALSE,
        color = "gray"
    ) +
    theme_minimal() +
    scale_x_date(
	    breaks = date_breaks("4 weeks"),
        labels = date_format("%d/%b/\n%Y")
    ) +
    scale_y_continuous(
        limits = c(0, 250000)
    ) 

# Gerar o gráfico de óbitos novos
plotdeaths <- ggplot(europa, aes(data, deaths)) +
    labs(
        title = paste("Óbitos por Covid-19 na União Europeia entre 2020-03-01 e ", dataDados),
        caption = paste("Dados baixados do ECDC (https://www.ecdc.europa.eu/en) em", dataDados),
        x = "Data",
        y = "Óbitos (últimas 24 horas)"
    ) +
    geom_point(
        color = "blue"
    ) +
    geom_smooth(
        method = "gam",
        formula = y ~ s(x, bs = "cs"),
        se = FALSE,
        color = "gray"
    ) +
    theme_minimal() +
    scale_x_date(
        breaks = date_breaks("4 weeks"),
        labels = date_format("%d/%b/\n%Y")
    ) +
    scale_y_continuous(
        limits = c(0, 5000)
    ) 
# Gravar as imagens dos gráficos no disco
ggsave("../img/ecdc_ue_novos_casos.svg", plotcases, device=svg())
ggsave("../img/ecdc_ue_novos_obitos.svg", plotdeaths, device=svg())
Referências