Este conjunto de scripts sirve para ver el estado de vacunación por autonomĆas con los nuevos datos desagregados del Ministerio de Sanidad.
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)
}
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"
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)
}
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)
}
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)
}
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)
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)
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)
}
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)
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)
}
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)
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)
}
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)
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