Semana 19

Este conjunto de scripts sirve para ver el estado de vacunación por autonomías con los nuevos datos desagregados del Ministerio de Sanidad.

Plantilla de grƔficos

theme_a <- function(base_size = 11,
                    base_family = "sans"
                           )
    {
 
    tema <-
        theme_bw(base_size=base_size) +
          
        theme(legend.position="top") +
        theme(legend.text = element_text(size=base_size,family = base_family)) +
        theme(plot.title=element_text(size=base_size+4, 
                                      vjust=1.25, 
                                      family=base_family, 
                                      hjust = 0.5
                                      )) +
        theme(plot.subtitle=element_text(size=base_size+2, family = base_family))  +
        theme(text = element_text(size=base_size,family = base_family)) +
        theme(axis.text.x=element_text(size=base_size,family = base_family)) +
        theme(axis.text.y=element_text(size=base_size, family = base_family)) +

        theme(axis.title.x=element_text(size=base_size, vjust=0, family = base_family)) +
        theme(axis.title.y=element_text(size=base_size, vjust=1.25, family = base_family)) +
        theme(plot.caption=element_text(size=base_size-2, family = base_family)) +
        theme(strip.text = element_text(size=base_size+2, family = base_family)) +
        theme(strip.text.x = element_text(size=base_size+1, family = base_family)) +
        theme(strip.text.y = element_text(size=base_size+1, family = base_family)) 

    return (tema)
}

Preparar datos para grƔficas

library(tidyverse)
library(ggrepel)   # para etiquetas
library(RColorBrewer)
library(ggpubr)
library(gganimate)



color_ccaa <- brewer.pal(n = 16, name = "Greens")




url_file_vacunas_etarios_1d<- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/vacunas/estado_vacunacion_etarios_1dosis_.csv"

url_file_vacunas_etarios_2d<- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/vacunas/estado_vacunacion_etarios_pauta_completa_.csv"

url_ccaas_poblacion <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/provincias-poblacion.csv"

vacunas_etarios_1d_raw <- read_csv( url_file_vacunas_etarios_1d )
vacunas_etarios_2d_raw <- read_csv( url_file_vacunas_etarios_2d )

vacunas_etarios_1d_raw$date_pub <-  as.Date(vacunas_etarios_1d_raw$date_pub,format= "%d/%m/%y")
vacunas_etarios_2d_raw$date_pub <-  as.Date(vacunas_etarios_2d_raw$date_pub,format= "%d/%m/%y")
max_date = max(vacunas_etarios_1d_raw$date_pub)


names ((vacunas_etarios_1d_raw))
##  [1] "date_pub"                                            
##  [2] "ccaa"                                                
##  [3] "Personas con al menos 1 dosis >=80 aƱos"             
##  [4] "Población INE>=80 años"                              
##  [5] "%"                                                   
##  [6] "Personas con al menos 1 dosis 70-79 aƱos"            
##  [7] "Población INE70-79 años"                             
##  [8] "%.1"                                                 
##  [9] "Personas con al menos 1 dosis 60-69 aƱos"            
## [10] "Población INE60-69 años"                             
## [11] "%.2"                                                 
## [12] "Personas con al menos 1 dosis 50-59 aƱos"            
## [13] "Población INE50-59 años"                             
## [14] "%.3"                                                 
## [15] "Personas con al menos 1 dosis 25-49 aƱos"            
## [16] "Población INE25-49 años"                             
## [17] "%.4"                                                 
## [18] "18-24 aƱos"                                          
## [19] "Población INE18-24 años"                             
## [20] "%.5"                                                 
## [21] "16-17 aƱos"                                          
## [22] "Población INE16-17 años"                             
## [23] "%.6"                                                 
## [24] "Total Personas con al menos 1 dosis"                 
## [25] "Total Población INE Población a Vacunar (1)"         
## [26] "% Con al menos 1 dosis sobre Población a Vacunar INE"
## [27] "source_name"                                         
## [28] "source"
poblacion_edad <-  vacunas_etarios_1d_raw %>%
       filter (ccaa != "Fuerzas Armadas") %>%
       rename (`>=80` = `Población INE>=80 años`) %>%
       rename (`70-79` = `Población INE70-79 años`) %>%
       rename (`60-69` = `Población INE60-69 años`) %>%  
       rename (`50-59` = `Población INE50-59 años`) %>% 
       rename (`25-49` =  `Población INE25-49 años`) %>%  
       rename (`18-24` =  `Población INE18-24 años`) %>%  
       rename (`16-17` =  `Población INE16-17 años`) %>% 
       gather (`>=80` | `70-79` | `60-69` | `50-59` |
               `25-49` | `18-24` | `16-17`,
               key = "rango_poblacion", value = "poblacion") %>%
               arrange (date_pub,ccaa,rango_poblacion ) %>%
               select (rango_poblacion,poblacion) %>%
               distinct (rango_poblacion,poblacion)

vacunas_etarios_1d <- vacunas_etarios_1d_raw %>%
       filter (ccaa != "Fuerzas Armadas") %>%
       rename (`>=80` = `%`) %>%
       rename (`70-79` = `%.1`) %>%
       rename (`60-69` = `%.2`) %>%  
       rename (`50-59` = `%.3`) %>% 
       rename (`25-49` = `%.4`) %>%  
       rename (`18-24` = `%.5`) %>%  
       rename (`16-17` = `%.6`) %>% 
       gather (`>=80` | `70-79` | `60-69` | `50-59` |
               `25-49` | `18-24` | `16-17`,
                key = "Rango edad", value = "percent") %>%
       arrange (date_pub,ccaa,`Rango edad`) %>%
       select (date_pub,ccaa,`Rango edad`,percent) %>%
       distinct (date_pub,ccaa,`Rango edad`,percent) %>%
       cbind (poblacion_edad)



vacunas_etarios_1d$percent <- as.numeric(vacunas_etarios_1d$percent)
vacunas_etarios_1d$poblacion <- as.numeric(vacunas_etarios_1d$poblacion)


vacunas_etarios_2d <- 
       vacunas_etarios_2d_raw %>%
       filter (ccaa != "Fuerzas Armadas") %>%
       rename (`>=80` = `%`) %>%
       rename (`70-79` = `%.1`) %>%
       rename (`60-69` = `%.2`) %>%  
       rename (`50-59` = `%.3`) %>% 
       rename (`25-49` = `%.4`) %>%  
       rename (`18-24` = `%.5`) %>%  
       rename (`16-17` = `%.6`) %>% 
       gather (`>=80` | `70-79` | `60-69` | `50-59` |
               `25-49` | `18-24` | `16-17`,
                key = "Rango edad", value = "percent") %>%
       arrange (date_pub,ccaa,`Rango edad`) %>%
       select (date_pub,ccaa,`Rango edad`,percent) %>%
       distinct (date_pub,ccaa,`Rango edad`,percent) %>%
       cbind (poblacion_edad)

vacunas_etarios_2d$percent <- as.numeric(vacunas_etarios_2d$percent)
vacunas_etarios_2d$poblacion <- as.numeric(vacunas_etarios_2d$poblacion)


orden_edad <- c( ">=80",
                "70-79", 
                "60-69", 
                "50-59",
                "25-49", 
                "18-24",
                "16-17") # Orden para edades
vacunas_etarios_1d$`Rango edad` <- factor(vacunas_etarios_1d$`Rango edad`,levels=orden_edad) # Ordenamos rangos de edad 
vacunas_etarios_2d$`Rango edad` <- factor(vacunas_etarios_2d$`Rango edad`,levels=orden_edad) # Ordenamos rangos de edad 


head (vacunas_etarios_1d)
##     date_pub      ccaa Rango edad      percent rango_poblacion poblacion
## 1 2021-03-31 AndalucĆ­a       >=80 0.9077810774            >=80    413516
## 2 2021-03-31 AndalucĆ­a      16-17 0.0007915524           16-17    181921
## 3 2021-03-31 AndalucĆ­a      18-24 0.0399203638           18-24    625846
## 4 2021-03-31 AndalucĆ­a      25-49 0.1052910881           25-49   3009381
## 5 2021-03-31 AndalucĆ­a      50-59 0.1058812462           50-59   1265021
## 6 2021-03-31 AndalucĆ­a      60-69 0.0663179599           60-69    916147
head (vacunas_etarios_2d_raw)
## # A tibble: 6 x 28
##   date_pub   ccaa  `Personas pauta~ `Población INE>~ `%`   `Personas pauta~
##   <date>     <chr>            <dbl> <chr>            <chr>            <dbl>
## 1 2021-03-31 Anda~           240454 413516           0.58~            12788
## 2 2021-03-31 Arag~            40245 98807            0.40~             3048
## 3 2021-03-31 Astu~            37353 87826            0.42~             3490
## 4 2021-03-31 Bale~            12403 49542            0.25~             2088
## 5 2021-03-31 Cana~            31183 90236            0.34~            11216
## 6 2021-03-31 Cant~            22177 41042            0.54~             1660
## # ... with 22 more variables: `Población INE70-79 años` <chr>, `%.1` <chr>,
## #   `Personas pauta completa 60-69 años` <dbl>, `Población INE60-69
## #   aƱos` <chr>, `%.2` <chr>, `Personas pauta completa 50-59 aƱos` <dbl>,
## #   `Población INE50-59 años` <chr>, `%.3` <chr>, `Personas pauta completa
## #   25-49 años` <dbl>, `Población INE25-49 años` <chr>, `%.4` <chr>, `18-24
## #   años` <dbl>, `Población INE18-24 años` <chr>, `%.5` <chr>, `16-17
## #   años` <dbl>, `Población INE16-17 años` <chr>, `%.6` <chr>, `Total Personas
## #   pauta completa` <dbl>, `Total Población INE Población a Vacunar (1)` <chr>,
## #   `% pauta completa sobre Población a Vacunar INE` <chr>, source_name <chr>,
## #   source <chr>
names (vacunas_etarios_1d)
## [1] "date_pub"        "ccaa"            "Rango edad"      "percent"        
## [5] "rango_poblacion" "poblacion"

Evolución de la vacunación por edades

Función generica para calcular la media de un grupo de edad

media_rango_edad <- function(df,rango_edad,fecha)
{
df <- df %>%
         filter ( ccaa == "Total EspaƱa") %>%
         filter ( `Rango edad` == rango_edad) %>%
         filter ( `date_pub` == fecha) %>%
         select (percent)
media <- as.numeric(unique(df))

return (media)

}

Función génerica para los filtros de datos por un grupo de edad

filtros_vacunas <- function(df,media,rango_edad, fecha)

{

df<- df %>%
      filter (ccaa != "Total EspaƱa" ) %>%
      filter (date_pub == fecha) %>%
      filter (`Rango edad` == rango_edad) %>%
      mutate (diff = percent - media)  %>%
      arrange(percent)

ccaa_order = unique(df$ccaa)
df$ccaa <- factor (df$ccaa, levels=ccaa_order)
return (df)

} 

Función génerica para la grÔfica autonomías por un grupo de edad

radar_vacunas <- function(df,media,title,top,poner_etiquetas,name_file) {

p <- ggplot(df,  aes(x=ccaa, y=percent, group= `Rango edad`)) + 
  geom_hline(yintercept = c(media, media), size=2,
                      alpha = 0.5, color = "grey") +
  geom_point(aes (size = poblacion/1000), color = "darkgreen")+ 
  geom_line(color = "darkgreen", alpha = 0.6, show.legend = FALSE) + 

  labs(title = paste(title,df$date_pub),
       subtitle = "Porcentaje y diferencia respecto a la media de EspaƱa",
       size = "Población en miles", color = "Edad",
      caption ="@congosto\nfuente: @escovid19data, con datos del Ministerio de Sanidad" ) +
  scale_size(range = c(1,10)) +
  scale_y_continuous (labels=scales::percent_format(accuracy = 1),
                      limits=c (0, top))  +
  guides(col = guide_legend(ncol = 10)) +
  coord_polar() +
  theme_a()+
  theme(axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        panel.grid.major.y = element_blank(),
        legend.direction = "horizontal",
        panel.grid.major.x = element_line(colour = "gray"),
        panel.border = element_blank(),
        legend.position="top")

if (poner_etiquetas){
  p <- p +
  geom_text_repel (data = df %>% filter (diff < 0), 
             aes(x = ccaa , y = percent, label = paste0 (round(percent*100,1),"%\n (",round (diff*100,1),")")),
             color = 'red4' ,
             show.legend = FALSE,
             #hjust =-0, vjust =0
             max.overlaps=20) +
  geom_text_repel (data = df %>% filter (diff >= 0), 
             aes(x = ccaa, y = percent, label = paste0 (round(percent*100,1),"%\n (+",round (diff*100,1),")")),
             color = 'steelblue4' ,
             show.legend = FALSE,
             #hjust =0, vjust =0
             max.overlaps=20) +
            annotate (geom="label",x =0, y=0, label = paste ("Media de EspaƱa\n",
                                                    round (media*100,1),"%")) 

}
ggsave(name_file,p, width = 250, height = 250,unit="mm")
return (p)

}

Radar para los vacunados con una dosis > 80 aƱos

media <- media_rango_edad (vacunas_etarios_1d,">=80", max_date)
df <- filtros_vacunas (vacunas_etarios_1d,media, ">=80", max_date)

grafica1 <- radar_vacunas (df ,media,
                          "Porcentaje de vacunación primera dosis a mayores de 80 años a ",
                          1.1,TRUE,"vacunas_primera_mayor80.png")
plot (grafica1)

Radar para los vacunados con dos dosis > 80 aƱos

media <- media_rango_edad (vacunas_etarios_2d,">=80", max_date)
df <- filtros_vacunas (vacunas_etarios_2d,media, ">=80", max_date)

grafica2 <- radar_vacunas (df , media,
                          "Porcentaje de vacunación segunda dosis a mayores de 80 años a", 1.1,
                          TRUE,"vacunas_segunda_mayores80.png")

plot (grafica2)

#### Radar para los vacunados con una dosis 70-79 aƱos

media <- media_rango_edad (vacunas_etarios_1d,"70-79",max_date)
df <- filtros_vacunas (vacunas_etarios_1d,media, "70-79",  max_date)

grafica3 <- radar_vacunas (df , media,
                          "Porcentaje de vacunación primera dosis entre los de 70-79 años a", 1.1,
                          TRUE,"vacunas_primera_70-79.png")

plot (grafica3)

#### Radar para los vacunados con una dosis 60-69 aƱos

media <- media_rango_edad (vacunas_etarios_1d,"60-69",max_date)
df <- filtros_vacunas (vacunas_etarios_1d,media, "60-69",  max_date)

grafica3 <- radar_vacunas (df , media,
                          "Porcentaje de vacunación primera dosis entre los de 60-69 años a", 1,
                          TRUE,"vacunas_primera_60-69.png")

plot (grafica3)

Función génerica para la grÔfica por grupo de edad, grid autonomias

radar_edad_vacunas <- function(df,title) {

p <- ggplot(df,  aes(x=`Rango edad`, y=percent, group= `ccaa`, color=`Rango edad`)) + 
  geom_point(aes(size = poblacion/1000000)) + 
  geom_line( show.legend = FALSE) + 
  labs(title = paste(title,df$date_pub),

       size = "Población en millones", color = "Edad",
      caption ="@congosto\nfuente: Ministerio de Sanidad de EspaƱa" ) +
  #guides(color=guide_legend(ncol=7)) +
  scale_size(range = c(1,7)) +
  coord_polar() +
  facet_wrap(~ ccaa)+
  theme_a()+
  theme(axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        #panel.grid.major.y = element_blank(),
        legend.direction = "horizontal",
        panel.grid.major.x = element_line(colour = "gray"),
        panel.grid.major.y = element_line(colour = "gray"),
        legend.position="top")

return (p)

}

Vacunación por grupo de edad

df<-vacunas_etarios_1d %>%
      filter (date_pub == max_date) 

grafica4 <- radar_edad_vacunas (df, 
                      "Porcentaje de vacunación por edad y por autonomía")
plot (grafica4)

Función génerica para la grÔfica autonomías por un grupo de edad con animación

radar_vacunas_anim <- function(df,title,top,file_out) {
  
  
  
  
media <- df %>%
        filter (ccaa == "Total EspaƱa")  %>%
        arrange (date_pub)

max_media <- max (media$percent)

min_fecha <- min(df$date_pub)
df1 <- df %>% 
       filter(date_pub == min_fecha) %>%
       arrange (percent)

ccaa_order = unique(df1$ccaa)
df$ccaa <- factor (df$ccaa, levels=ccaa_order)

anim <- ggplot() + 
  geom_hline(yintercept = c(max_media, max_media), size=2,
                      alpha = 0.5, color = "grey") +
  geom_line (data = df  %>%
                  filter (ccaa != "Total EspaƱa"),
             aes(x=ccaa, y=percent, group= date_pub),
             color = "darkgreen",alpha = 0.6, show.legend = FALSE) + 
  geom_label (data = df %>%
                     filter (ccaa == "Total EspaƱa"),
              aes (x=0,y =0, 
                   label= paste(date_pub,"\nMedia =",round(percent*100,1))),
              color ="darkgreen") +
  labs(title = title,
       size = "Población en miles", color = "Edad",
       caption ="@congosto\nfuente: @escovid19data, con datos del Ministerio de Sanidad" ) +
  scale_size(range = c(1,10)) +
  scale_y_continuous (labels=scales::percent_format(accuracy = 1), 
                      limits=c (0, top))  +
  guides(col = guide_legend(ncol = 10)) +
  coord_polar() +
  transition_reveal(date_pub) +
  theme_a()+
  theme(axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        panel.grid.major.y = element_blank(),
        legend.direction = "horizontal",
        panel.grid.major.x = element_line(colour = "gray"),
        panel.border = element_blank(),
        legend.position="top",
        plot.margin = unit(c(0,0,0,0), "cm"))

animate(anim,nframes=num_frames,fps = 5, start_pause = 1, end_pause = 20)
anim_save(file_out)
return (anim)

}

Radar con animación para los vacunados con al menos una dosis > 80 años

df <- filter (vacunas_etarios_1d,`Rango edad` == ">=80")
num_frames <- length(unique(df$date_pub)) *5
grafica5 <- radar_vacunas_anim (df ,
                          "Porcentaje de vacunación primera dosis en mayores de 80",
                           1.2,"vacunas_primera_mayor80_anim.gif")
animate(grafica5,nframes=num_frames,fps = 5, start_pause = 1, end_pause = 20)

Radar con animación para los vacunados con dos dosis > 80 años

df <- filter (vacunas_etarios_2d,`Rango edad` == ">=80")
num_frames <- length(unique(df$date_pub)) *5
grafica6 <- radar_vacunas_anim (df ,
                          "Porcentaje de vacunación segunda dosis en mayores de 80",
                          1.1,"vacunas_segunda_mayor80_anim.gif")

animate(grafica6,nframes=num_frames,fps = 5, start_pause = 1, end_pause = 20)

#### Radar con animación para los vacunados con al menos una dosis en rango 60-69 años

df <- filter (vacunas_etarios_1d,`Rango edad` == "60-69")
num_frames <- length(unique(df$date_pub)) *5
grafica6 <- radar_vacunas_anim (df ,
                          "Porcentaje de vacunación primera dosis rango 60-69",
                          .6,"vacunas_primera_60-69_anim.gif")

animate(grafica6,nframes=num_frames,fps = 5, start_pause = 1, end_pause = 20)

### Función génerica para la grÔfica autonomías por un grupo de edad con animación, dosis administradas >=80

radar_vacunas_administradas_anim <- function(df1,df2,title,top,file_out) {
  
  
df1$`Población INE>=80 años` <- as.numeric (df1$`Población INE>=80 años`)  
df2$`Población INE>=80 años` <- as.numeric (df2$`Población INE>=80 años`) 

media1 <- df1 %>%
        mutate (pauta_completa = df2$`Personas pauta completa >=80 aƱos`) %>%
        mutate (tasa_suministradas = ((`Personas con al menos 1 dosis >=80 aƱos` + pauta_completa)*100000)
                                       /`Población INE>=80 años`) %>%
        filter (ccaa == "Total EspaƱa") %>%
        arrange (date_pub)

max_media1 <- max (media1$tasa_suministradas)

min_fecha <- min(df1$date_pub)

df1 <- df1 %>%
        mutate (pauta_completa = df2$`Personas pauta completa >=80 aƱos`) %>%
        mutate (tasa_suministradas = ((`Personas con al menos 1 dosis >=80 aƱos` + pauta_completa)*100000)
                                       /`Población INE>=80 años`) %>%
        arrange (date_pub)
df1_min <- df1 %>% 
       filter(date_pub == min_fecha) %>%
       arrange (tasa_suministradas)


ccaa_order = unique(df1_min$ccaa)
df1$ccaa <- factor (df1$ccaa, levels=ccaa_order)



anim <- ggplot() + 
  geom_hline(yintercept = c(max_media1, max_media1), size=2,
                      alpha = 0.5, color = "grey") +
  geom_line (data = df1  %>%
                  filter (ccaa != "Total EspaƱa"),
             aes(x=ccaa, y=tasa_suministradas, group= date_pub),
             color = "darkgreen",alpha = 0.6, show.legend = FALSE) + 
  geom_label (data = df1 %>%
                     filter (ccaa == "Total EspaƱa"),
              aes (x=0,y =0, 
                   label= date_pub),
              color ="darkgreen") +
  labs(title = title,
       size = "Población en miles", color = "Edad",
       caption ="@congosto\nfuente: @escovid19data, con datos del Ministerio de Sanidad" ) +
  scale_size(range = c(1,10)) +
  #scale_y_continuous (labels=scales::percent_format(accuracy = 1), 
  #                    limits=c (0, top))  +
  guides(col = guide_legend(ncol = 10)) +
  coord_polar() +
  transition_reveal(date_pub) +
  theme_a()+
  theme(axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        panel.grid.major.y = element_blank(),
        legend.direction = "horizontal",
        panel.grid.major.x = element_line(colour = "gray"),
        panel.border = element_blank(),
        legend.position="top",
        plot.margin = unit(c(0,0,0,0), "cm"))

animate(anim,nframes=num_frames,fps = 5, start_pause = 1, end_pause = 20)
anim_save(file_out)
return (anim)

}

Radar con animación para dosis suministradas para mayores de 80

num_frames <- length(unique(vacunas_etarios_1d_raw$date_pub)) *5
grafica7 <- radar_vacunas_administradas_anim (vacunas_etarios_1d_raw ,vacunas_etarios_2d_raw,
                          "Tasa de dosis suministradas por 100.000 habitantes en mayores de 80",
                          1.1,"vacunas_suministradas_mayor80_anim.gif")

animate(grafica7,nframes=num_frames,fps = 5, start_pause = 1, end_pause = 20)

Mapa espaƱa segundas dosis

library(mapSpain)
## Warning: package 'mapSpain' was built under R version 4.0.5
library(sf)
## Warning: package 'sf' was built under R version 4.0.5
## Linking to GEOS 3.9.0, GDAL 3.2.1, PROJ 7.2.1
library(ggthemes)    # Temas
## Warning: package 'ggthemes' was built under R version 4.0.5
url_file_coor_ccaa <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/shapes/spain_regions_utm.csv"

coor_ccaa <- read_delim (url_file_coor_ccaa , delim =";",
                         locale = locale ( decimal_mark = ".", grouping_mark = ","))
## Parsed with column specification:
## cols(
##   num_region = col_character(),
##   INE_name = col_character(),
##   ISO_name = col_character(),
##   latitude = col_double(),
##   longitude = col_double()
## )
mapSpain_sf <- esp_get_ccaa()

# AƱadirle los nombres del INE e ISO de las ccaa y la latitud y longitud de cada comunidad con un recurso espacial
ccaa <-     tibble (ccaa= c("Andalucía", "Aragón", "Asturias", "Baleares", "Canarias" ,         
              "Cantabria", "Castilla y Leon", "Castilla - La Mancha","CataluƱa",
              "C. Valenciana","Extremadura", "Galicia", "Madrid",
              "Murcia","Navarra","PaĆ­s Vasco",
              "La Rioja","Ceuta","Melilla")) 

coor_ccaa_iso_ine <- bind_cols (coor_ccaa,ccaa)

df <- vacunas_etarios_2d_raw %>%
      filter (ccaa != 'Total EspaƱa' &
              ccaa != 'Fuerzas Armadas' &
              date_pub == max_date)
  

vacunas_etarios_2d_iso_ine <- left_join  (df,coor_ccaa_iso_ine)
## Joining, by = "ccaa"
vacunas_etarios_2d_iso_ine$`% pauta completa sobre Población a Vacunar INE` <- 
                  as.numeric(vacunas_etarios_2d_iso_ine$`% pauta completa sobre Población a Vacunar INE`)
vacunas_map_es_2d <-left_join (mapSpain_sf,vacunas_etarios_2d_iso_ine, by = c("ine.ccaa.name"="INE_name" ))
breaks <- c(seq(10,100, by = 2.5))

ggplot(data = vacunas_map_es_2d ) +
           geom_sf(aes(fill = `% pauta completa sobre Población a Vacunar INE`*100), color = "#BAEEF5") + 

           geom_sf_text (aes(label = paste0(round(`% pauta completa sobre Población a Vacunar INE`*100,1),"%")),
                          stat = "sf_coordinates",
                          size = 3) +
           scale_fill_gradient (low = "#fff7bc",high = "#d95f0e",
                                guide = guide_legend(),
                                breaks =breaks) +
           labs(title = paste ("Estado vacunación 2ª dosis", max_date),
                x = "",y = "",
                fill = "%") +
           guides(fill = guide_legend(title = "%")) +
           theme_map() +
           theme (legend.position ="right")
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
## give correct results for longitude/latitude data

### Mapa espaƱa primera dosis

library(mapSpain)
library(sf)
library(ggthemes)    # Temas



df <- vacunas_etarios_1d_raw %>%
      filter (ccaa != 'Total EspaƱa' &
              ccaa != 'Fuerzas Armadas' &
              date_pub == max_date)
  

vacunas_etarios_1d_iso_ine <- left_join  (df,coor_ccaa_iso_ine)
## Joining, by = "ccaa"
vacunas_etarios_1d_iso_ine$`% Con al menos 1 dosis sobre Población a Vacunar INE` <- 
                  as.numeric(vacunas_etarios_1d_iso_ine$`% Con al menos 1 dosis sobre Población a Vacunar INE`)
vacunas_map_es_1d <-left_join (mapSpain_sf,vacunas_etarios_1d_iso_ine, by = c("ine.ccaa.name"="INE_name" ))
breaks <- c(seq(10,100, by = 5))

ggplot(data = vacunas_map_es_1d ) +
           geom_sf(aes(fill = `% Con al menos 1 dosis sobre Población a Vacunar INE`*100), color = "#BAEEF5") + 

           geom_sf_text (aes(label = paste0(round(`% Con al menos 1 dosis sobre Población a Vacunar INE`*100,1),"%")),
                          stat = "sf_coordinates",
                          size = 3) +
           scale_fill_gradient (low = "#fff7bc",high = "#d95f0e",
                                guide = guide_legend(),
                                breaks =breaks) +
           labs(title = paste ("Estado vacunación 1ª dosis", max_date),
                x = "",y = "",
                fill = "%") +
           guides(fill = guide_legend(title = "%")) +
           theme_map() +
           theme (legend.position ="right")
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
## give correct results for longitude/latitude data