Semana 11 2022

Resumen

preparar datos para grƔficas

library(readr)
library(dplyr)
library(tidyr)
library(ggplot2)
library(ggrepel)
library(stringr)
require(RCurl)
library(lubridate)


url_file_prov<-"https://raw.githubusercontent.com/montera34/escovid19data/master/data/output/covid19-provincias-spain_consolidated.csv"
url_file_poblacion <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/provincias-poblacion.csv"

provincias <- read.csv( url_file_prov,encoding = "UTF-8")
provincias_abreviatura <- read_csv( "abreviaturas_provincias.csv")

provincias  <- provincias  %>%
               filter (date >= "2021-01-01")  
provincias$date <-  as.Date(provincias$date,format= "%Y-%m-%d")
provincias <- provincias  %>% 
                select (date,province,ccaa,hospitalized,intensive_care,daily_deaths,poblacion) %>% 
                merge(provincias_abreviatura,
                      by.x = "province", by.y = "provincia"  ) %>% 
                mutate(hospitalized_tot = ifelse(ccaa == "AndalucĆ­a" |
                                                   ccaa == "Madrid, Comunidad de" |
                                                   ccaa == "Cantabria" |
                                                   ccaa == "Murcia" |
                                                   ccaa == "Cantabria",hospitalized ,
                                                                       hospitalized+intensive_care)) %>%
                mutate (hospitalized_nor =hospitalized_tot *100000/ poblacion )  %>%
                mutate (intensive_care_nor = intensive_care *100000/ poblacion)  %>%
                mutate (daily_deaths_nor =daily_deaths *100000/ poblacion ) %>%
                mutate (year = as.integer(format(date, format="%Y")) -2021) %>%
                mutate (week = (as.integer(format(date, format="%U")) +1)+(52*year))  %>%
                arrange (week) 

Plantilla de grƔficos

GrƔfica de tendencia

Hospitalizados en la última semana (variación)

GrƔfica sin nombres de provincia para destacar la tendencia.

GrÔfica de distribución

Distribución de hospitalizaciones

Distribución de UCI

GrÔfica de variación (incremento-descenso)

GrÔfica de variación (valor inicio-final)

Varación de hospitalizados en la última semana (incremento-descenso)

Variación de hospitalizados en la última semana (valor inicial y final)

Variación de UCI en la última semana (incremento-descenso)

res <-  dumbbell_A (provincias,"intensive_care_nor", "UCI",5,2,0.1)
plot(res)

Variación de UCI en la última semana (valores)

GrƔfica mapa calor

heat_map_resumen <- function (provincias,indicator,text_indicator){
  
weeks <- unique(provincias$week)
first_week <- min(weeks,na.rm = TRUE)  
last_week <- max(weeks,na.rm = TRUE)
name_file <- paste0("images/tercera_ola_",indicator,"_resumen.png")
chart_title <- paste("Evolución de", text_indicator)
df <- mutate (provincias,indicator=provincias[[indicator]]) %>%
    filter (!is.na (indicator) ) %>%
    filter (week > 30) %>%
    select (week,province,indicator)  %>%
    group_by(week,province) %>%
    summarise ( indicator_week = mean (indicator), .groups = 'drop') %>%
    mutate(indicator_last_week = ifelse(week == last_week, indicator_week, 0))

p <- 
ggplot(data = df,
       aes(x = week, y = reorder(province,(indicator_last_week)), fill=indicator_week)) +
  geom_tile()+
  geom_text(aes(label = round(indicator_week,1)), color="white", size=2.5,hjust=0.5, vjust=0.5 ) +
  scale_fill_gradient(low = "steelblue", high = "red4")+
  labs(y = "Provincia",
       caption = "By @congosto\nFuente: @escovid19data. https://github.com/montera34/escovid19data",
       title = chart_title, 
       subtitle="Tercera Ola (desde el 2 de diciembre). Normalizado a 100.000 habitantes")+
  scale_x_continuous(name="Semanas", breaks= weeks ,position = "top",
                     sec.axis = dup_axis()) +
  theme_a()+
  theme(legend.title=element_blank(),
        axis.ticks.y=element_blank(),
        axis.ticks.x=element_blank(),
        axis.title.y=element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank(),
        axis.text.x=element_text(size=10),
        axis.text.y=element_text(size=10),
        legend.position="right") 
#ggsave(name_file)
return (p)

}

Evolución de Hospitalizaciones

Evolución de UCI

Evolución de Fallecimientos

Evolución de hospitalizaciones, UCIs

GrÔficas inspiradas en las realizadas por @BIOCOMSC1 sobre el riesgo del COVID19. Dan mucha información con pocos elementos (poca tinta), permitiendo ver la evolución, el estado actual y las zonas de riesgo. Risk Diagrams Grafica

Cuando los datos tienen una componente temporal normalmente usamos un line chart. En estas grÔficas se representa la relación de dos variables a través del tiempo de una manera distinta. Es un diagrama de puntos unidos según su evolución en el tiempo.

No sĆ© el nombre que reciben estos grĆ”ficos pero William Phillips los utilizó 1958 para representar la evolución del desempleo y la inflación a travĆ©s del tiempo, que ha pasado a la historia como ā€œla curva Phillipsā€.

la curva de Phillips

Las grÔficas han sido mejoradas con la idea de Maarten Lambrechts de agrupar los datos semanalmente y señalar en el path el número de la semana.

La fuente de datos es el repositorio #escovid19data

Las grÔficas muestran la relación entre UCI y hospitalizados calculados como media semanal.

La semana de inicio es la 32 (3 Ago~9 Ago)

El código de color usado es:

  • verde: semana de inicio
  • rojo: semana de fin de fin
  • azul: semanas intermedias

Orden de las grƔficas es el del INE

  • 01 AndalucĆ­a
  • 02 Aragón
  • 03 Asturias, Principado de
  • 04 Balears, Illes
  • 05 Canarias
  • 06 Cantabria
  • 07 Castilla y León
  • 08 Castilla - La Mancha
  • 09 CataluƱa
  • 10 Comunitat Valenciana
  • 11 Extremadura
  • 12 Galicia
  • 13 Madrid, Comunidad de
  • 14 Murcia, Región de
  • 15 Navarra, Comunidad Foral de
  • 16 PaĆ­s Vasco
  • 17 Rioja, La
  • 18 Ceuta
  • 19 Melilla

Grafica connected scatterplot

connected_scatterplot_hos_UCI <- function  (provincias,autonomia) {

  autonomia_text <- str_replace_all(autonomia, " ", "_")
  name_file <- paste0("images/tercera_ola_",autonomia_text,"_UCI_vs_hospitalizados.png")
  chart_title <- paste("Evolución de los Hospitalizados vs. UCI (media semanal) en",autonomia)
  
  df <- filter (provincias,ccaa == autonomia) %>%
        filter (!is.na(hospitalized_nor)) %>%
        filter (!is.na(intensive_care_nor)) %>%
        mutate(tipo_fecha = ifelse(week == min(week), "primera", 
                              ifelse(week == max(week), "ultima","otras"))) %>%
        mutate(year = year (date)) %>%
        group_by(week,province) %>%
        summarise ( hospitalized_nor_week = mean(hospitalized_nor),
                    daily_death_nor_week = mean(daily_deaths_nor),
                    intensive_care_nor_week = mean(intensive_care_nor),
                    tipo_fecha = tipo_fecha,
                    year = year,
                    .groups = 'drop')  %>%
                    distinct(week,province,year,hospitalized_nor_week,intensive_care_nor_week,tipo_fecha )  %>%
                    arrange (week,province) 

  ini_year <-df %>%
            filter (week == 1 |
                    week == 54) 

  p <- 
  ggplot()+
    geom_path (data = df,
               aes(x=hospitalized_nor_week, y=intensive_care_nor_week),
                   color="cornflowerblue",size=0.5,alpha=0.5)+
    geom_label(data = df,
               aes(x=hospitalized_nor_week, y=intensive_care_nor_week, color=tipo_fecha,
                   label = ifelse(week > 53 ,week %% 53,week)),
               label.padding = unit(0.15, "lines"),
               size=3,hjust=1.1, vjust=0.5) + 
    geom_text_repel (data= ini_year,
               aes (x=hospitalized_nor_week, y=intensive_care_nor_week, label =year),
                  nudge_x = 0.5, # Ajuste eje x
                  nudge_y = 0.7 #juste eje y
                    ) +
    labs(x = "Hospitalizados (media semanal)", y = "UCI (media semanal)",
         caption = "By @congosto\nFuente: @escovid19data. https://github.com/montera34/escovid19data",
         title = chart_title,
         subtitle="Desde el 1 de enero de 2021. Normalizado a 100.000 habitantes") +
    scale_colour_manual('', values = c('primera' = 'forestgreen',
                                      'ultima' = 'red',
                                      'otras' = 'steelblue4')) +
    guides(color = "none") +   
    theme_a()+
    facet_wrap(~ province) 
  #ggsave(name_file )
return(p)
}

01 AndalucĆ­a

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"AndalucĆ­a")
plot(res)

02 Aragón

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Aragón")
plot(res)

03 Asturias, Principado de

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Asturias, Principado de")
plot(res)

04 Balears, Illes

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Balears, Illes")
plot(res)

05 Canarias

res <-  connected_scatterplot_hos_UCI (provincias,"Canarias")
plot(res)

06 Cantabria

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Cantabria")
plot(res)

07 Castilla y León

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Castilla y León")
plot(res)

08 Castilla l La Mancha

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Castilla - La Mancha")
plot(res)

09 CataluƱa

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"CataluƱa")
plot(res)

10 Comunitat Valenciana

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Comunitat Valenciana")
plot(res)  

11 Extremadura

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Extremadura")
plot(res) 

12 Galicia

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Galicia")
plot(res)

13 Madrid, Comunidad de

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Madrid, Comunidad de")
plot(res)

14 Murcia, Región de

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Murcia, Región de")
plot(res)

16 PaĆ­s Vasco

Segunda Ola (desde el 3 de agosto)

#res <-  connected_scatterplot_hos_UCI (provincias,"PaĆ­s Vasco")
#plot(res)

17 Rioja, La

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Rioja, La")
plot(res)

18 Ceuta

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Ceuta")
plot(res)

19 Melilla

Segunda Ola (desde el 3 de agosto)

res <-  connected_scatterplot_hos_UCI (provincias,"Melilla")
plot(res)