En los siguientes grÔficos se puede visualizar la evolución en la intención de voto junto con el margen de error correspondiente a cada encuesta para los candidatos con mayor intención de voto. El detalle de cada una de las encuestas consideradas se puede consultar aquí.

library(ggplot2)

set.seed(1)

candidato <- c("A.Barnechea", "K.Fujimori", "A.GarcĆ­a",
               "J.GuzmƔn", "P.Kuczynski", "V.Mendoza")

sims <- function(y){
  x <- t(array(rgamma(7000, y, 1), c(7, 1000)))
  p <- x / apply(x, 1, sum) * 100
  p <- sapply(t(p[, 1:6]), c)
}

# Resultados de encuestas

fecha <- as.Date("2015-12-15") # GFK: 11-15 Dic
y <- c(0, 380, 63, 25, 139, 25, 635)
p <- sims(y)
dran <- data.frame(p = p, candidato = candidato, fecha = fecha)
dpun <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)

fecha <- as.Date("2016-01-14") # Ipsos: 12-14 Ene
y <- c(5, 590, 146, 103, 240, 42, 705)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-01-26") # GFK: 22-26 Ene
y <- c(8, 510, 102, 163, 148, 30, 602)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-02-08") # Datum: 05-08 Feb
y <- c(36, 375, 48, 193, 133, 24, 400)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-02-18") # Ipsos: 13-18 Feb
y <- c(70, 537, 94, 337, 156, 80, 541)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-01") # GFK: 27-01 Mar
y <- c(79, 537, 67, 258, 107, 57, 485)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-07") # Datum: 04-07 Mar
y <- c(108, 444, 84, 0, 168, 96, 300)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-10") # Ipsos: 05-10 Mar
y <- c(167, 592, 111, 0, 259, 167, 555)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-15") # GFK: 11-15 Mar
y <- c(190, 544, 93, 0, 256, 120, 408)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-17") # Ipsos: 15-17 Mar
y <- c(210, 552, 125, 0, 271, 202, 432)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-20") # Datum: 17-20 Mar
y <- c(164, 413, 50, 0, 208, 126, 239)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-24") # Ipsos: 22-24 Mar
y <- c(199, 575, 111, 0, 287, 217, 402)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-03-30") # GFK: 28-30 Mar
y <- c(185, 678, 108, 0, 276, 274, 307)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

fecha <- as.Date("2016-04-01") # Ipsos: 30-01 Abr
y <- c(144, 619, 95, 0, 302, 279, 361)
p <- sims(y)
temp <- data.frame(p = p, candidato = candidato, fecha = fecha)
dran <- rbind(dran, temp)
temp <- data.frame(p = y[1:6] / sum(y) * 100, candidato = candidato, fecha = fecha)
dpun <- rbind(dpun, temp)

# Orden

dran <- subset(dran, candidato != "J.GuzmƔn")
dpun <- subset(dpun, candidato != "J.GuzmƔn")
orden <- c("K.Fujimori", "P.Kuczynski", "V.Mendoza", "A.Barnechea", "A.GarcĆ­a")
dran$candidato <- factor(dran$candidato, levels = orden)
dpun$candidato <- factor(dpun$candidato, levels = orden)

# Grafico 1

ggplot(dran, aes(fecha, p)) +
  labs(x = "Fecha", y = "Intención de voto (%)",
       title = "Evolución de intención de voto") +
  geom_jitter(width = 0.4, aes(color = candidato), alpha = I(0.03)) +
  geom_line(data = dpun, aes(x = fecha, y = p, group = candidato, colour = candidato),
            show.legend = TRUE)

# Grafico 2

dran <- subset(dran, fecha > "2016-02-28")
dpun <- subset(dpun, fecha > "2016-02-28")
  
ggplot(dran, aes(fecha, p)) +
  labs(x = "Fecha", y = "Intención de voto (%)",
       title = "Evolución de intención de voto (Marzo - Abril)") +
  geom_jitter(width = 0.4, aes(color = candidato), alpha = I(0.03)) +
  geom_line(data = dpun, aes(x = fecha, y = p, group = candidato, colour = candidato),
            show.legend = TRUE)