En este ejercicio publicaremos en la web una gráfica hecha en R. El gráfico será estático y tendrá los elementos principales.
library(htmltab)
url= "https://es.wikipedia.org/wiki/Elecciones_parlamentarias_de_Per%C3%BA_de_2016"
xpathTabla='//*[@id="mw-content-text"]/div/table[6]/tbody/tr/td/table/tbody'
congreso = htmltab(doc = url,
which = xpathTabla)
str(congreso)
## 'data.frame': 130 obs. of 6 variables:
## $ Distrito Electoral : chr "Amazonas(al 100,00%)" "Amazonas(al 100,00%)" "Áncash(al 100,00%)" "Áncash(al 100,00%)" ...
## $ Escaños : chr "2" "2" "5" "5" ...
## $ Congresistas electos: chr "2" "1" "2" "1" ...
## $ Congresistas electos: chr "Marita Herrera Arévalo" "Miguel Antonio Castro Grández" "Eloy Ricardo Narváez Soto" "María Elena Foronda Farro" ...
## $ Partido : chr "Fuerza Popular" "Fuerza Popular" "Alianza para el Progreso" "Frente Amplio" ...
## $ Votos : chr "15 312" "12 939" "20 941" "9 094" ...
congresoOK=congreso[,-c(3)] # eliminé
# de:
table(congresoOK$Partido)
##
## Acción Popular Alianza para el Progreso Alianza Popular
## 5 9 5
## Frente Amplio Fuerza Popular Peruanos por el Kambio
## 20 73 18
# a:
##guardar valores
TableFA=table(congresoOK$Partido)
# get vectors for columns:
VALUES=names(TableFA)
FREQUENCIES=as.vector(TableFA)
# A data frame from those vectors:
congresoOK_DF=data.frame(partido=VALUES,
conteo=FREQUENCIES)
# obtuviste:
congresoOK_DF
## partido conteo
## 1 Acción Popular 5
## 2 Alianza para el Progreso 9
## 3 Alianza Popular 5
## 4 Frente Amplio 20
## 5 Fuerza Popular 73
## 6 Peruanos por el Kambio 18
Decidir tipo de gráfico:
Aqui tenemos la solución inicial usando la biblioteca ggplot2:
# verificado si funciona:
library(ggplot2)
base=ggplot(congresoOK_DF,aes(x=partido,y=conteo))
base + geom_bar(stat = 'identity')
Para reordenar, como se sugirió, hacemos:
# REORDENANDO
congresoOK_DF_Ord=congresoOK_DF[order(-congresoOK_DF$conteo),]
#POSICIONES ORDENADAS
WHERE=congresoOK_DF_Ord$partido
base=ggplot(congresoOK_DF_Ord,aes(x=partido,y=conteo))
barp=base + geom_bar(stat = 'identity') +
scale_x_discrete(limits=WHERE) # NECESARIO
barp
barp= base + geom_bar(stat='identity',
fill ='white', color='black') +
scale_x_discrete(limits=WHERE)
barp=barp + theme_classic()
barp
text1="¿Tenemos un Congreso competitivo?"
text2="Partidos"
text3="Conteo"
text4="Fuente: Wikipedia"
barp= barp + labs(title=text1,
x =text2,
y = text3,
caption = text4)
barp
library(stringr)
barp= barp + theme(plot.caption = element_text(hjust = 0),
plot.title = element_text(hjust = 0.5,size=15),
axis.text.x = element_text(angle=45,hjust = 1)) +
scale_x_discrete(limits=WHERE,
labels=function(x) str_wrap(x, width = 10))
barp
barp= barp + annotate("segment",
x = 0, y = 66,xend = 6.5, yend = 66,
linetype=2,
colour = "blue")
barp
barp= barp + annotate("text", label = "UMBRAL DE MAYORIA ABSOLUTA",
x = 4, y = 70,
size = 3,
colour = "grey") +
annotate("text", label = "PARTIDO\nOPOSITOR",
x = 1, y = 40,
size = 3,fontface =2,
colour = "grey40") +
annotate("text", label = "PARTIDO\nDE\nGOBIERNO",
x = 3, y = 10,
size = 3,fontface =2,
colour = "grey40")
barp
barp + geom_text(aes(label=conteo),
vjust='bottom',nudge_y=1,
size=3,
color='gray')
Escribir este texto antes del gráfico: “Aqui presentamos un reporte sobre los resultados de las elecciones congresales del Peru en 2016. La variable analizada es partido. Se le ha analizado como variable nominal.”
Luego de escribir el párrafo anterior, añada la referencia de Stevens luego de la palabra nominal, usando el Addins:
Luego del párrafo, ponga la gráfica.
Al final de todo escriba ‘# References’.
Knitear el resultado, y publicarlo en RPubs.
AUSPICIO:
RECONOCIMIENTO
EL Dr. Magallanes agradece a la Pontificia Universidad Católica del Perú, por su apoyo en la participación en la Escuela ALACIP.
El autor reconoce el apoyo que el eScience Institute de la Universidad de Washington le ha brindado desde el 2015 para desarrollar su investigación en Ciencia de Datos.