Ver código
library(tidyverse)
library(plotly)
library(here)
# Parametros ####
shape_cafe_2022 <- c(
"Encuestas" = 6,
"@PoliticaConDato" = 15,
"@ColombiaRisk" = 17,
"Simple 2022" = 15,
"Mixto 2022" = 16,
"Ajiaco" = 5,
"@JorgeGalindo El Pais" = 16,
"La Silla Vacia" = 6,
"@calc_electoral" = 1,
"Resultado" = NULL
)
colors_cafe_2022 <- c(
"Encuestas" = "purple3",
"@PoliticaConDato" = "blue",
"@ColombiaRisk" = "gold2",
"Simple 2022" = "orangered",
"Mixto 2022" = "orangered",
"Ajiaco" = "orangered",
"@JorgeGalindo El Pais" = "green4",
"La Silla Vacia" = "darkturquoise",
"@calc_electoral" = "royalblue2",
"Resultado" = "#ff4800"
)
# Cafe plot ####
cafe_2022_plot <- readr::read_csv(here("elecciones","2022-colombia","2022-05-31-cafe-2022","sancocho_resultados.csv")) %>%
dplyr::filter(!is.na(nombres), nombres!="Voto en blanco") %>%
dplyr::mutate(nombres = factor(nombres, levels=c("Gustavo Petro","Rodolfo Hernandez","Federico Gutierrez","Sergio Fajardo"))) %>%
ggplot2::ggplot(ggplot2::aes(x=nombres %>% reorder(dplyr::desc(nombres)),y=pronostico))+
ggplot2::geom_point(data=. %>% dplyr::filter(plato!="Resultado"),
ggplot2::aes(shape=plato,
text = paste("Estimado por: ", plato,
"\nValor estimado: ",paste(round(pronostico, digits = 2)," %")),
color=plato),
size=4,
position = position_dodge(0.5),
show.legend = FALSE)+
ggplot2::geom_errorbar(data=. %>% dplyr::filter(plato!="Resultado"),
ggplot2::aes(ymax=high,ymin=low,
color=plato),
position = position_dodge(0.5),width=0.3, show.legend = FALSE)+
# Resultados
ggplot2::geom_col(data=. %>% dplyr::filter(plato=="Resultado"),
ggplot2::aes(text = paste0("Resultado ",nombres,": ", paste(round(pronostico, digits = 2)," %"))),
alpha=0.4, fill="#ff4800", show.legend = FALSE)+
ggplot2::theme(legend.position = "none",
legend.title = ggplot2::element_blank(),
legend.key=ggplot2::element_blank(),
legend.text=ggplot2::element_text(size=11),
strip.text.x = ggplot2::element_text(size = 8),
axis.text=ggplot2::element_text(size=11),
axis.ticks.x=ggplot2::element_blank(),
axis.text.x=ggplot2::element_blank(),
panel.background=ggplot2::element_rect(fill="white",color="white"))+
ggplot2::labs(x=NULL,y="\n% Votos validos vs % Votos estimados",
title="Cafe post electoral 2022 - Primera vuelta",
subtitle="Pronósticos (puntos) vs Resultados (barra)",
caption="\nFuente: www.recetas-electorales.com")+
ggplot2::scale_shape_manual(values=shape_cafe_2022)+
ggplot2::scale_color_manual(values=colors_cafe_2022)+
ggplot2::coord_flip()
# ggplotly ####
plotly::ggplotly(cafe_2022_plot, tooltip = "text") %>%
plotly::layout(title = list(text = paste0('Cafe post electoral 2022 - Primara vuelta',
'<br>',
'<sup>',
'Pronosticos (puntos) vs Resultados (barra)','</sup>')))Café post electoral 2022 - Primera vuelta