Análisis del proyecto IVE en el Poder Legislativo argentino

Durante los años 2018 y 2020, a partir del activismo de movimientos feministas y luego de varios intentos, el proyecto de ley de Interrupción Voluntaria del Embarazo ingresó al Poder Legislativo Nacional para su tratamiento. Mientras que en el primer año, se logró alcanzar únicamente la media sanción en la cámara baja para luego ser rechazado en la cámara alta, el proyecto ingresado en diciembre de 2020 fue finalmente aprobado tanto en Diputadxs como en Senadorxs con algunas diferencias que trataremos de identificar en el siguiente análisis donde abordaremos la distribución de votos en ambos años de acuerdo a la orientación política, las provincias, el género y la edad.

Cargamos las librerías que necesitamos.

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.0.3
## -- Attaching packages ----------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.4     v dplyr   1.0.2
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.5.0
## Warning: package 'tibble' was built under R version 4.0.3
## Warning: package 'tidyr' was built under R version 4.0.3
## Warning: package 'dplyr' was built under R version 4.0.3
## -- Conflicts -------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(plyr)
## Warning: package 'plyr' was built under R version 4.0.3
## ------------------------------------------------------------------------------
## You have loaded plyr after dplyr - this is likely to cause problems.
## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
## library(plyr); library(dplyr)
## ------------------------------------------------------------------------------
## 
## Attaching package: 'plyr'
## The following objects are masked from 'package:dplyr':
## 
##     arrange, count, desc, failwith, id, mutate, rename, summarise,
##     summarize
## The following object is masked from 'package:purrr':
## 
##     compact
library(ggparliament)
## Warning: package 'ggparliament' was built under R version 4.0.3
library(ggthemes)
## Warning: package 'ggthemes' was built under R version 4.0.3
library(plotly)
## Warning: package 'plotly' was built under R version 4.0.3
## 
## Attaching package: 'plotly'
## The following objects are masked from 'package:plyr':
## 
##     arrange, mutate, rename, summarise
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(readr)
library(readxl)
## Warning: package 'readxl' was built under R version 4.0.3
library(dplyr)
library(ggplot2)
library(geofacet)
## Warning: package 'geofacet' was built under R version 4.0.3
library(data.table)
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
## The following object is masked from 'package:purrr':
## 
##     transpose
library(highcharter)
## Warning: package 'highcharter' was built under R version 4.0.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Highcharts (www.highcharts.com) is a Highsoft software product which is
## not free for commercial and Governmental use
library(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
library(paletteer)
## Warning: package 'paletteer' was built under R version 4.0.3
library(gganimate)
## Warning: package 'gganimate' was built under R version 4.0.3

1. Resultados de votaciones en Diputadxs 2018

1.1. Importamos el dataset de resultados de votaciones en Diputadxs 2018

votaciones_dip_2018 <- read.csv("C:/Documents and Settings/emili/Documents/EMILIA/R/EANT - SOCIAL DATA ANALYTICS/EANT - GRUPO IVE/votaciones_dip_2018_lanacion.csv", sep = ",", encoding = "UTF-8")

1.2. Revisamos el dataset.

View(votaciones_dip_2018)
glimpse(votaciones_dip_2018)
## Rows: 257
## Columns: 11
## $ X.U.FEFF.diputado_id <int> 853, 1307, 1279, 797, 878, 1267, 876, 1265, 59...
## $ Diputado             <chr> "Monzó., Emilio", "Vigo,  Alejandra María", "N...
## $ Provincia            <chr> "BUENOS AIRES", "CÓRDOBA", "MENDOZA", "CHACO",...
## $ Partido              <chr> "PRO", "CÓRDOBA FEDERAL", "UNIÓN CÍVICA RADICA...
## $ Orientación          <chr> "Cambiemos", "PJ ", "Cambiemos", "Kirchnerismo...
## $ Voto                 <chr> "", "ABSTENCION", "AFIRMATIVO", "AFIRMATIVO", ...
## $ ley_id               <int> 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708...
## $ Nombre.Ley           <chr> "Legalización del aborto", "Legalización del a...
## $ Fecha                <chr> "14/06/2018", "14/06/2018", "14/06/2018", "14/...
## $ Acta.votación        <chr> "https://votaciones.hcdn.gob.ar/3805.pdf", "ht...
## $ Texto.Ley            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
colnames(votaciones_dip_2018)
##  [1] "X.U.FEFF.diputado_id" "Diputado"             "Provincia"           
##  [4] "Partido"              "Orientación"          "Voto"                
##  [7] "ley_id"               "Nombre.Ley"           "Fecha"               
## [10] "Acta.votación"        "Texto.Ley"

1.3. Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

resultados_dip_2018 <- votaciones_dip_2018 %>% 
  select(Diputado, Provincia, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

1.4. Renombramos las siguientes columnas

colnames(resultados_dip_2018)[1] <- "nombre_diputado"
colnames(resultados_dip_2018)[2] <- "provincia"
colnames(resultados_dip_2018)[3] <- "orientación"
colnames(resultados_dip_2018)[4] <- "party_long" 

#Renombramos voto por party_long para graficar con ggparliament, se suele usar para colorear la pertenencia partidaria pero en este caso lo rellenaremos por tipo de voto

1.5. Creamos las variables de cantidad de asientos, color, orden y gobierno para poder graficar con el paquete ggparliament.

#Columna seats

resultados_dip_2018 <- resultados_dip_2018 %>% mutate(
     seats = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "1",
       party_long == "AUSENTE"        ~ "1",
       party_long == "NEGATIVO"        ~ "1",
       ))

resultados_dip_2018$seats <- as.double(resultados_dip_2018$seats)


#Columna colour

resultados_dip_2018 <- resultados_dip_2018 %>% mutate(
     colour = case_when(
       party_long == "AFIRMATIVO"        ~ "#58eb34",
       party_long == "ABSTENCION"        ~ "#ebe834",
       party_long == "AUSENTE"        ~ "#9c9c91",
       party_long == "NEGATIVO"        ~ "#eb3a34",
       ))

#Creamos la columna orden para manifestar el orden en que deberá aparecer en el gráfico

resultados_dip_2018 <- resultados_dip_2018 %>% mutate(
     orden = case_when(
       party_long == "AUSENTE"        ~ "1",
       party_long == "ABSTENCION"        ~ "2",
       party_long == "NEGATIVO"        ~ "3",
       party_long == "AFIRMATIVO"        ~ "4",
       ))

resultados_dip_2018$orden <- as.double(resultados_dip_2018$orden)

#Creamos la columna government, para que despues pueda contornear al que tenga la mayoria de votos

resultados_dip_2018 <- resultados_dip_2018 %>% mutate(
     government = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "0",
       party_long == "AUSENTE"        ~ "0",
       party_long == "NEGATIVO"        ~ "0",
       ))
# Ordenamos los niveles del dataset para que se replique en el gráfico

resultados_dip_2018$party_long <- factor(as.character(resultados_dip_2018$party_long), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"), labels = c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

1.6. Creamos objeto de ggparliament.

diputados_2018_gral<- ggparliament::parliament_data(resultados_dip_2018, #datos 
                                                       type = "semicircle", # forma del hemiciclo
                                                       parl_rows =8, # cantidad de filas
                                                       party_seats = resultados_dip_2018$seats, # número de bancas 
                                                       plot_order = resultados_dip_2018$orden) %>% #orden de partidos en hemiciclo
  mutate(colour = as.character(colour)) %>% # vector de texto para codigo HEX de colores asignados previamente
  as_tibble()

1.7. Graficamos el hemiciclo.

grafico_diputados_2018 <- diputados_2018_gral %>% as_tibble() %>% 
  ggplot(aes(x, y, color = party_long, text = paste0("Diputadx: ", nombre_diputado, "\n", "Provincia: ", provincia, "\n", "Orientación: ", orientación , "\n", "Voto: ", party_long))) +
  geom_parliament_seats(size = 4) + # tamaño de bancas (puntos)
  geom_highlight_government(government == 1, colour = "black", size = 4) + # circulo negro al oficialismo
  geom_parliament_bar(colour = colour, party = party_long, label = T) + # barra con proporción de bancas
  draw_majoritythreshold(n = 128, label = F, type = "semicircle", linesize = 0.5) + # dibuja el limite de mayoría 
  scale_y_continuous(labels = scales::percent) +
  scale_colour_manual(values = diputados_2018_gral$colour, #asigno colores 
                      limits = diputados_2018_gral$party_long)  +

  labs(title = "Proyecto de ley de Interrupcion Voluntaria del Embarazo",
       subtitle = "Votación en Diputadxs - Año 2018",
       x = "",
       y = "",
       caption = "Fuente: Cámara de Diputados de la Nación",
       colour = NULL) +
  theme_minimal() +
  theme(panel.grid = element_blank(), 
        axis.text = element_blank(),
        legend.text = element_text(size = 10),
        legend.position = c(0.9, 0.7)
        )
## Warning: Ignoring unknown aesthetics: text
grafico_diputados_2018

1.8. Lo pasamos a modo interactivo con ggplotly.

## Creamos el ggplotly ##

grafico_diputados_2018_plotly <- ggplotly(grafico_diputados_2018, tooltip = "text")%>%
  layout(title = list(text = paste0('Proyecto de ley de Interrupcion Voluntaria del Embarazo',
                                    '<br>',
                                    '<sup>',
                                    'Votación en Diputadxs - Año 2018',
                                    '</sup>')),
         legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.3, 
                                                              y = -0.03,
                                                              text = "Fuente: Cámara de Diputados de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))
## Warning in geom2trace.default(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): geom_GeomTextRepel() has yet to be implemented in plotly.
##   If you'd like to see this geom implemented,
##   Please open an issue with your example code at
##   https://github.com/ropensci/plotly/issues
grafico_diputados_2018_plotly

1. Resultados de votaciones en Senadorxs 2018

1.9. Importamos el dataset de resultados de votaciones en Senadorxs 2018

votaciones_sen_2018 <- read.csv("C:/Documents and Settings/emili/Documents/EMILIA/R/EANT - SOCIAL DATA ANALYTICS/EANT - GRUPO IVE/votaciones_sen_2018_lanacion.csv", sep = ",", encoding = "UTF-8")

1.10. Revisamos el dataset.

View(votaciones_sen_2018)
glimpse(votaciones_sen_2018)
## Rows: 72
## Columns: 11
## $ X.U.FEFF.diputado_id <int> 920, 440, 945, 947, 898, 908, 290, 907, 270, 2...
## $ Diputado             <chr> "Crexell., Carmen Lucila", "Perotti.,  Omar Án...
## $ Provincia            <chr> "NEUQUÉN", "SANTA FE", "MENDOZA", "CHUBUT", "S...
## $ Partido              <chr> "", "", "", "", "", "", "", "", "", "", "", ""...
## $ Orientación          <chr> "Otros", "PJ ", "Cambiemos", "PJ ", "Kirchneri...
## $ Voto                 <chr> "ABSTENCION", "ABSTENCION", "AFIRMATIVO", "AFI...
## $ ley_id               <int> 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737...
## $ Nombre.Ley           <chr> "Legalización del aborto", "Legalización del a...
## $ Fecha                <chr> "09/08/2018", "09/08/2018", "09/08/2018", "09/...
## $ Acta.votación        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Texto.Ley            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
colnames(votaciones_sen_2018)
##  [1] "X.U.FEFF.diputado_id" "Diputado"             "Provincia"           
##  [4] "Partido"              "Orientación"          "Voto"                
##  [7] "ley_id"               "Nombre.Ley"           "Fecha"               
## [10] "Acta.votación"        "Texto.Ley"

1.11. Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

resultados_sen_2018 <- votaciones_sen_2018 %>% 
  select(Diputado, Provincia, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

1.12. Renombramos las siguientes columnas

colnames(resultados_sen_2018)[1] <- "nombre_diputado"
colnames(resultados_sen_2018)[2] <- "provincia"
colnames(resultados_sen_2018)[3] <- "orientación"
colnames(resultados_sen_2018)[4] <- "party_long"

#Renombramos voto por party_long para graficar con ggparliament, se suele usar para colorear la pertenencia partidaria pero en este caso lo rellenaremos por tipo de voto

1.13. Creamos las variables de cantidad de asientos, color, orden y gobierno para poder graficar con el paquete ggparliament.

#Columna seats

resultados_sen_2018 <- resultados_sen_2018 %>% mutate(
     seats = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "1",
       party_long == "AUSENTE"        ~ "1",
       party_long == "NEGATIVO"        ~ "1",
       ))

resultados_sen_2018$seats <- as.double(resultados_sen_2018$seats)


#Columna colour

resultados_sen_2018 <- resultados_sen_2018 %>% mutate(
     colour = case_when(
       party_long == "AFIRMATIVO"        ~ "#58eb34",
       party_long == "ABSTENCION"        ~ "#ebe834",
       party_long == "AUSENTE"        ~ "#9c9c91",
       party_long == "NEGATIVO"        ~ "#eb3a34",
       ))

#Creamos la columna orden para manifestar el orden en que deberá aparecer en el gráfico

resultados_sen_2018 <- resultados_sen_2018 %>% mutate(
     orden = case_when(
       party_long == "AUSENTE"        ~ "1",
       party_long == "ABSTENCION"        ~ "2",
       party_long == "NEGATIVO"        ~ "3",
       party_long == "AFIRMATIVO"        ~ "4",
       ))

resultados_sen_2018$orden <- as.double(resultados_sen_2018$orden)

#Creamos la columna government, para que despues pueda contornear al que tenga la mayoria de votos

resultados_sen_2018 <- resultados_sen_2018 %>% mutate(
     government = case_when(
       party_long == "AFIRMATIVO"        ~ "0",
       party_long == "ABSTENCION"        ~ "0",
       party_long == "AUSENTE"        ~ "0",
       party_long == "NEGATIVO"        ~ "1",
       ))

# Ordenamos los niveles del dataset para que se replique en el gráfico

resultados_sen_2018$party_long <- factor(as.character(resultados_sen_2018$party_long), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"), labels = c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

1.14. Creamos objeto de ggparliament.

senadores_2018_gral<- ggparliament::parliament_data(resultados_sen_2018, #datos 
                                                       type = "semicircle", # forma del hemiciclo
                                                       parl_rows = 4, # cantidad de filas
                                                       party_seats = resultados_sen_2018$seats, # número de bancas 
                                                       plot_order = resultados_sen_2018$orden) %>% #orden de partidos en hemiciclo
  mutate(colour = as.character(colour)) %>% # vector de texto para codigo HEX de colores asignados previamente
  as_tibble()

1.15. Graficamos el hemiciclo.

grafico_senadores_2018 <- senadores_2018_gral %>% as_tibble() %>% 
  ggplot(aes(x, y, color = party_long, text = paste0("Senador/a: ", nombre_diputado, "\n", "Provincia: ", provincia, "\n", "Orientación: ", orientación , "\n", "Voto: ", party_long))) +
  geom_parliament_seats(size = 8) + # tamaño de bancas (puntos)
  geom_highlight_government(government == 1, colour = "black", size = 8) + # circulo negro al oficialismo
  geom_parliament_bar(colour = colour, party = party_long, label = T) + # barra con proporción de bancas
  draw_majoritythreshold(n = 36, label = F, type = "semicircle", linesize = 0.5) + # dibuja el limite de mayoría 
  scale_colour_manual(values = senadores_2018_gral$colour, #asigno colores 
                      limits = senadores_2018_gral$party_long)  +
  labs(title = "Proyecto de ley de Interrupcion Voluntaria del Embarazo",
       subtitle = "Votación en Senadorxs - Año 2018",
       x = "",
       y = "",
       caption = "Fuente: Cámara de Senadores de la Nación",
       colour = NULL) +
  theme_minimal() +
  theme(panel.grid = element_blank(), 
        axis.text = element_blank(),
        legend.text = element_text(size = 10),
        legend.position = c(0.9, 0.7)
        )
## Warning: Ignoring unknown aesthetics: text
grafico_senadores_2018

1.16. Lo pasamos a modo interactivo con ggplotly.

## Creamos el ggplotly ##

grafico_senadores_2018_plotly <- ggplotly(grafico_senadores_2018, tooltip = "text")%>%
  layout(title = list(text = paste0('Proyecto de ley de Interrupcion Voluntaria del Embarazo',
                                    '<br>',
                                    '<sup>',
                                    'Votación en Senadorxs - Año 2018',
                                    '</sup>')),
         legend = list(orientation = "v", x = 1, y = 1, size = 10), 
                                           annotations = list(x = 1.3, 
                                                              y = -0.05,
                                                              text = "Fuente: Cámara de Senadores de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=11, color="black")))
## Warning in geom2trace.default(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): geom_GeomTextRepel() has yet to be implemented in plotly.
##   If you'd like to see this geom implemented,
##   Please open an issue with your example code at
##   https://github.com/ropensci/plotly/issues
grafico_senadores_2018_plotly

1. Resultados de votaciones en Diputadxs 2020

1.17. Importamos el dataset de resultados de votaciones en Diputadxs 2020

votaciones_dip_2020 <- read.csv("C:/Documents and Settings/emili/Documents/EMILIA/R/EANT - SOCIAL DATA ANALYTICS/EANT - GRUPO IVE/votaciones_dip_2020_lanacion.csv", sep = ",", encoding = "UTF-8")

1.18. Revisamos el dataset.

View(votaciones_dip_2020)
glimpse(votaciones_dip_2020)
## Rows: 257
## Columns: 11
## $ X.U.FEFF.diputado_id <int> 669, 866, 153, 1354, 1436, 1445, 1379, 1419, 1...
## $ Diputado             <chr> "Massa,  Sergio", "Patiño., José Luis", "Corne...
## $ Provincia            <chr> "BUENOS AIRES", "CDAD. AUT. BS. AS.", "MENDOZA...
## $ Partido              <chr> "FRENTE DE TODOS", "PRO", "UNIÓN CÍVICA RADICA...
## $ Orientación          <chr> "Kirchnerismo/PJ", "Cambiemos", "Cambiemos", "...
## $ Voto                 <chr> "", "ABSTENCION", "ABSTENCION", "ABSTENCION", ...
## $ ley_id               <int> 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180...
## $ Nombre.Ley           <chr> "Legalización del aborto", "Legalización del a...
## $ Fecha                <chr> "11/12/2020", "11/12/2020", "11/12/2020", "11/...
## $ Acta.votación        <chr> "https://votaciones.hcdn.gob.ar/votacion/4077"...
## $ Texto.Ley            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
colnames(votaciones_dip_2020)
##  [1] "X.U.FEFF.diputado_id" "Diputado"             "Provincia"           
##  [4] "Partido"              "Orientación"          "Voto"                
##  [7] "ley_id"               "Nombre.Ley"           "Fecha"               
## [10] "Acta.votación"        "Texto.Ley"

1.19. Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

resultados_dip_2020 <- votaciones_dip_2020 %>% 
  select(Diputado, Provincia, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

1.20. Renombramos las siguientes columnas

colnames(resultados_dip_2020)[1] <- "nombre_diputado"
colnames(resultados_dip_2020)[2] <- "provincia"
colnames(resultados_dip_2020)[3] <- "orientación"
colnames(resultados_dip_2020)[4] <- "party_long" 

#Renombramos voto por party_long para graficar con ggparliament, se suele usar para colorear la pertenencia partidaria pero en este caso lo rellenaremos por tipo de voto

1.21. Creamos las variables de cantidad de asientos, color, orden y gobierno para poder graficar con el paquete ggparliament.

#Columna seats

resultados_dip_2020 <- resultados_dip_2020 %>% mutate(
     seats = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "1",
       party_long == "AUSENTE"        ~ "1",
       party_long == "NEGATIVO"        ~ "1",
       ))

resultados_dip_2020$seats <- as.double(resultados_dip_2020$seats)


#Columna colour

resultados_dip_2020 <- resultados_dip_2020 %>% mutate(
     colour = case_when(
       party_long == "AFIRMATIVO"        ~ "#58eb34",
       party_long == "ABSTENCION"        ~ "#ebe834",
       party_long == "AUSENTE"        ~ "#9c9c91",
       party_long == "NEGATIVO"        ~ "#eb3a34",
       ))

#Creamos la columna orden para manifestar el orden en que deberá aparecer en el gráfico

resultados_dip_2020 <- resultados_dip_2020 %>% mutate(
     orden = case_when(
       party_long == "AUSENTE"        ~ "1",
       party_long == "ABSTENCION"        ~ "2",
       party_long == "NEGATIVO"        ~ "3",
       party_long == "AFIRMATIVO"        ~ "4",
       ))

resultados_dip_2020$orden <- as.double(resultados_dip_2020$orden)

#Creamos la columna government, para que despues pueda contornear al que tenga la mayoria de votos

resultados_dip_2020 <- resultados_dip_2020 %>% mutate(
     government = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "0",
       party_long == "AUSENTE"        ~ "0",
       party_long == "NEGATIVO"        ~ "0",
       ))

# Ordenamos los niveles del dataset para que se replique en el gráfico

resultados_dip_2020$party_long <- factor(as.character(resultados_dip_2020$party_long), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"), labels = c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

1.22. Creamos objeto de ggparliament.

diputados_2020_gral<- ggparliament::parliament_data(resultados_dip_2020, #datos 
                                                       type = "semicircle", # forma del hemiciclo
                                                       parl_rows =8, # cantidad de filas
                                                       party_seats = resultados_dip_2020$seats, # número de bancas 
                                                       plot_order = resultados_dip_2020$orden) %>% #orden de partidos en hemiciclo
  mutate(colour = as.character(colour)) %>% # vector de texto para codigo HEX de colores asignados previamente
  as_tibble()

1.23. Graficamos el hemiciclo.

grafico_diputados_2020 <- diputados_2020_gral %>% as_tibble() %>% 
  ggplot(aes(x, y, color = party_long, text = paste0("Diputadx: ", nombre_diputado, "\n", "Provincia: ", provincia, "\n", "Orientación: ", orientación , "\n", "Voto: ", party_long))) +
  geom_parliament_seats(size = 4) + # tamaño de bancas (puntos)
  geom_highlight_government(government == 1, colour = "black", size = 4) + # circulo negro al oficialismo
  geom_parliament_bar(colour = colour, party = party_long, label = T) + # barra con proporción de bancas
  draw_majoritythreshold(n = 128, label = F, type = "semicircle", linesize = 0.5) + # dibuja el limite de mayoría 
  scale_y_continuous(labels = scales::percent) +
  scale_colour_manual(values = diputados_2020_gral$colour, #asigno colores 
                      limits = diputados_2020_gral$party_long)  +

  labs(title = "Proyecto de ley de Interrupcion Voluntaria del Embarazo",
       subtitle = "Votación en Diputadxs - Año 2020",
       x = "",
       y = "",
       caption = "Fuente: Cámara de Diputados de la Nación",
       colour = NULL) +
  theme_minimal() +
  theme(panel.grid = element_blank(), 
        axis.text = element_blank(),
        legend.text = element_text(size = 10),
        legend.position = c(0.9, 0.7)
        )
## Warning: Ignoring unknown aesthetics: text
grafico_diputados_2020

1.24. Lo pasamos a modo interactivo con ggplotly.

## Creamos el ggplotly ##

grafico_diputados_2020_plotly <- ggplotly(grafico_diputados_2020, tooltip = "text")%>%
  layout(title = list(text = paste0('Proyecto de ley de Interrupcion Voluntaria del Embarazo',
                                    '<br>',
                                    '<sup>',
                                    'Votación en Diputadxs - Año 2020',
                                    '</sup>')),
         legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.3, 
                                                              y = -0.03,
                                                              text = "Fuente: Cámara de Diputados de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))
## Warning in geom2trace.default(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): geom_GeomTextRepel() has yet to be implemented in plotly.
##   If you'd like to see this geom implemented,
##   Please open an issue with your example code at
##   https://github.com/ropensci/plotly/issues
grafico_diputados_2020_plotly

1. Resultados de votaciones en Senadorxs 2020

1.25. Importamos el dataset de resultados de votaciones en Senadorxs 2018

votaciones_sen_2020 <- read.csv("C:/Documents and Settings/emili/Documents/EMILIA/R/EANT - SOCIAL DATA ANALYTICS/EANT - GRUPO IVE/votaciones_sen_2020_lanacion.csv", sep = ",", encoding = "UTF-8")

1.26. Revisamos el dataset.

View(votaciones_sen_2020)
glimpse(votaciones_sen_2020)
## Rows: 72
## Columns: 11
## $ X.U.FEFF.diputado_id <int> 808, 512, 1455, 910, 782, 446, 1449, 935, 920,...
## $ Diputado             <chr> "Snopek., Guillermo", "Sapag,  Silvia Estela",...
## $ Provincia            <chr> "JUJUY", "NEUQUÉN", "", "LA PAMPA", "RIO NEGRO...
## $ Partido              <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Orientación          <chr> "Kirchnerismo/PJ", "Kirchnerismo/PJ", "Kirchne...
## $ Voto                 <chr> "", "AFIRMATIVO", "AFIRMATIVO", "AFIRMATIVO", ...
## $ ley_id               <int> 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198...
## $ Nombre.Ley           <chr> "Legalización del aborto", "Legalización del a...
## $ Fecha                <chr> "29/12/2020", "29/12/2020", "29/12/2020", "29/...
## $ Acta.votación        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Texto.Ley            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
colnames(votaciones_sen_2020)
##  [1] "X.U.FEFF.diputado_id" "Diputado"             "Provincia"           
##  [4] "Partido"              "Orientación"          "Voto"                
##  [7] "ley_id"               "Nombre.Ley"           "Fecha"               
## [10] "Acta.votación"        "Texto.Ley"

1.27. Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

# Reasignamos el voto de Snopek a ABSTENCION 
votaciones_sen_2020$Voto[1]= "ABSTENCION"

resultados_sen_2020 <- votaciones_sen_2020 %>% 
  select(Diputado, Provincia, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

1.28. Renombramos las siguientes columnas

colnames(resultados_sen_2020)[1] <- "nombre_diputado"
colnames(resultados_sen_2020)[2] <- "provincia"
colnames(resultados_sen_2020)[3] <- "orientación"
colnames(resultados_sen_2020)[4] <- "party_long"

#Renombramos voto por party_long para graficar con ggparliament, se suele usar para colorear la pertenencia partidaria pero en este caso lo rellenaremos por tipo de voto

1.29. Creamos las variables de cantidad de asientos, color, orden y gobierno para poder graficar con el paquete ggparliament.

#Columna seats

resultados_sen_2020 <- resultados_sen_2020 %>% mutate(
     seats = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "1",
       party_long == "AUSENTE"        ~ "1",
       party_long == "NEGATIVO"        ~ "1",
       ))

resultados_sen_2020$seats <- as.double(resultados_sen_2020$seats)


#Columna colour

resultados_sen_2020 <- resultados_sen_2020 %>% mutate(
     colour = case_when(
       party_long == "AFIRMATIVO"        ~ "#58eb34",
       party_long == "ABSTENCION"        ~ "#ebe834",
       party_long == "AUSENTE"        ~ "#9c9c91",
       party_long == "NEGATIVO"        ~ "#eb3a34",
       ))

#Creamos la columna orden para manifestar el orden en que deberá aparecer en el gráfico

resultados_sen_2020 <- resultados_sen_2020 %>% mutate(
     orden = case_when(
       party_long == "AUSENTE"        ~ "1",
       party_long == "ABSTENCION"        ~ "2",
       party_long == "NEGATIVO"        ~ "3",
       party_long == "AFIRMATIVO"        ~ "4",
       ))

resultados_sen_2020$orden <- as.double(resultados_sen_2020$orden)

#Creamos la columna government, para que despues pueda contornear al que tenga la mayoria de votos

resultados_sen_2020 <- resultados_sen_2020 %>% mutate(
     government = case_when(
       party_long == "AFIRMATIVO"        ~ "1",
       party_long == "ABSTENCION"        ~ "0",
       party_long == "AUSENTE"        ~ "0",
       party_long == "NEGATIVO"        ~ "0",
       ))

# Ordenamos los niveles del dataset para que se replique en el gráfico

resultados_sen_2020$party_long <- factor(as.character(resultados_sen_2020$party_long), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"), labels = c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

1.30. Creamos objeto de ggparliament.

senadores_2020_gral<- ggparliament::parliament_data(resultados_sen_2020, #datos 
                                                       type = "semicircle", # forma del hemiciclo
                                                       parl_rows = 4, # cantidad de filas
                                                       party_seats = resultados_sen_2020$seats, # número de bancas 
                                                       plot_order = resultados_sen_2020$orden) %>% #orden de partidos en hemiciclo
  mutate(colour = as.character(colour)) %>% # vector de texto para codigo HEX de colores asignados previamente
  as_tibble()

1.31. Graficamos el hemiciclo.

grafico_senadores_2020 <- senadores_2020_gral %>% as_tibble() %>% 
  ggplot(aes(x, y, color = party_long, text = paste0("Senador/a: ", nombre_diputado, "\n", "Provincia: ", provincia, "\n", "Orientación: ", orientación , "\n", "Voto: ", party_long))) +
  geom_parliament_seats(size = 8) + # tamaño de bancas (puntos)
  geom_highlight_government(government == 1, colour = "black", size = 8) + # circulo negro al oficialismo
  geom_parliament_bar(colour = colour, party = party_long, label = T) + # barra con proporción de bancas
  draw_majoritythreshold(n = 36, label = F, type = "semicircle", linesize = 0.5) + # dibuja el limite de mayoría 
  scale_colour_manual(values = senadores_2020_gral$colour, #asigno colores 
                      limits = senadores_2020_gral$party_long)  +
  labs(title = "Proyecto de ley de Interrupcion Voluntaria del Embarazo",
       subtitle = "Votación en Senadorxs - Año 2020",
       x = "",
       y = "",
       caption = "Fuente: Cámara de Senadores de la Nación",
       colour = NULL) +
  theme_minimal() +
  theme(panel.grid = element_blank(), 
        axis.text = element_blank(),
        legend.text = element_text(size = 10),
        legend.position = c(0.9, 0.7)
        )
## Warning: Ignoring unknown aesthetics: text
grafico_senadores_2020

1.32. Lo pasamos a modo interactivo con ggplotly.

## Creamos el ggplotly ##

grafico_senadores_2020_plotly <- ggplotly(grafico_senadores_2020, tooltip = "text")%>%
  layout(title = list(text = paste0('Proyecto de ley de Interrupcion Voluntaria del Embarazo',
                                    '<br>',
                                    '<sup>',
                                    'Votación en Senadorxs - Año 2020',
                                    '</sup>')),
         legend = list(orientation = "v", x = 1, y = 1, size = 10), 
                                           annotations = list(x = 1.3, 
                                                              y = -0.05,
                                                              text = "Fuente: Cámara de Senadores de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=11, color="black")))
## Warning in geom2trace.default(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]]): geom_GeomTextRepel() has yet to be implemented in plotly.
##   If you'd like to see this geom implemented,
##   Please open an issue with your example code at
##   https://github.com/ropensci/plotly/issues
grafico_senadores_2020_plotly

2. Resultados de votaciones en Diputadxs 2018 según Orientación Política

2.1 Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

dip_orienpol_2018 <- votaciones_dip_2018 %>% 
  select(Diputado, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

dip_orienpol_2018$Orientación <- toupper(dip_orienpol_2018$Orientación) # Pasamos categorías en mayúsculas

dip_orienpol_2018 <- transform(dip_orienpol_2018,
          Orientación=revalue(Orientación,c("PJ "="PJ"))) # Corregimos categoría PJ

2.2 Agrupamos votos por orientación política y calculamos su porcentaje.

dip_orienpol_2018 <- dip_orienpol_2018 %>% 
  dplyr::count(Orientación, Voto, sort = F)%>% 
  rename(Cantidad = n) %>% 
  group_by(Orientación) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

# Reordeno variables para el gráfico

dip_orienpol_2018$Orientación <- factor(dip_orienpol_2018$Orientación, levels=c("OTROS","IZQUIERDA","MASSISMO Y ALIADOS", "PJ", "KIRCHNERISMO Y ALIADOS","CAMBIEMOS"))

dip_orienpol_2018
##               Orientación       Voto Cantidad Porcentaje
## 1               CAMBIEMOS AFIRMATIVO       42      39.25
## 2               CAMBIEMOS   NEGATIVO       65      60.75
## 3               IZQUIERDA AFIRMATIVO        3     100.00
## 4  KIRCHNERISMO Y ALIADOS AFIRMATIVO       55      85.94
## 5  KIRCHNERISMO Y ALIADOS    AUSENTE        1       1.56
## 6  KIRCHNERISMO Y ALIADOS   NEGATIVO        8      12.50
## 7      MASSISMO Y ALIADOS AFIRMATIVO        9      42.86
## 8      MASSISMO Y ALIADOS   NEGATIVO       12      57.14
## 9                   OTROS AFIRMATIVO        6      28.57
## 10                  OTROS   NEGATIVO       15      71.43
## 11                     PJ ABSTENCION        1       2.50
## 12                     PJ AFIRMATIVO       14      35.00
## 13                     PJ   NEGATIVO       25      62.50

2.3. Armamos un gráfico con las proporciones de tipos de voto para cada orientación.

dip_orienpol_2018_plot <- ggplot(dip_orienpol_2018,
            aes(x = Orientación, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Diputadxs por tipo de Voto", 
       subtitle = "Año 2018",
       caption = "Fuente: Cámara de Diputados de la Nación",
       x = "Orientación Política", 
       y = "Cantidad") +
  theme_minimal() +
  coord_flip ()

2.4. Agregamos los titulos, subtitulos y fuentes al plotly

dip_orienpol_2018_plotly <- ggplotly(dip_orienpol_2018_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Diputadxs','<br>', '<sup>', 'Año 2018', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.12, 
                                                              y = -0.09,
                                                              text = "Fuente: Cámara de Diputados de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))



dip_orienpol_2018_plotly

2. Resultados de votaciones en Senadorxs 2018 según Orientación Política

2.5 Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

sen_orienpol_2018 <- votaciones_sen_2018 %>% 
  select(Diputado, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

sen_orienpol_2018$Orientación <- toupper(sen_orienpol_2018$Orientación) # Pasamos categorías en mayúsculas

sen_orienpol_2018 <- transform(sen_orienpol_2018,
          Orientación=revalue(Orientación,c("PJ "="PJ"))) # Corregimos categoría PJ

2.6 Agrupamos votos por orientación política.

sen_orienpol_2018 <- sen_orienpol_2018 %>% 
  dplyr::count(Orientación, Voto, sort = F)%>% 
  rename(Cantidad = n) %>% 
  group_by(Orientación) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

# Reordeno variables para el gráfico

sen_orienpol_2018$Orientación <- factor(sen_orienpol_2018$Orientación, levels=c("OTROS","PJ", "KIRCHNERISMO Y ALIADOS","CAMBIEMOS"))

sen_orienpol_2018$Voto <- factor(as.character(sen_orienpol_2018$Voto), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

sen_orienpol_2018
##               Orientación       Voto Cantidad Porcentaje
## 1               CAMBIEMOS AFIRMATIVO        8      32.00
## 2               CAMBIEMOS   NEGATIVO       17      68.00
## 3  KIRCHNERISMO Y ALIADOS AFIRMATIVO        8      88.89
## 4  KIRCHNERISMO Y ALIADOS   NEGATIVO        1      11.11
## 5                   OTROS ABSTENCION        1       7.14
## 6                   OTROS AFIRMATIVO        3      21.43
## 7                   OTROS    AUSENTE        1       7.14
## 8                   OTROS   NEGATIVO        9      64.29
## 9                      PJ ABSTENCION        1       4.17
## 10                     PJ AFIRMATIVO       12      50.00
## 11                     PJ   NEGATIVO       11      45.83

2.7. Armamos un gráfico con las proporciones de tipos de voto para cada orientación.

sen_orienpol_2018_plot <- ggplot(sen_orienpol_2018,
            aes(x = Orientación, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Senadorxs por tipo de Voto", 
       subtitle = "Año 2018",
       caption = "Fuente: Cámara de Senadores de la Nación",
       x = "Orientación Política", 
       y = "Cantidad") +
  theme_minimal() +
  coord_flip ()

2.8. Agregamos los titulos, subtitulos y fuentes al plotly

sen_orienpol_2018_plotly <- ggplotly(sen_orienpol_2018_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Senadorxs','<br>', '<sup>', 'Año 2018', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.12, 
                                                              y = -0.09,
                                                              text = "Fuente: Cámara de Senadores de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))


sen_orienpol_2018_plotly

2. Resultados de votaciones en Diputadxs 2020 según Orientación Política

2.9. Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

dip_orienpol_2020 <- votaciones_dip_2020 %>% 
  select(Diputado, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

dip_orienpol_2020$Orientación <- toupper(dip_orienpol_2020$Orientación) # Pasamos categorías en mayúsculas

2.10. Agrupamos votos por orientación política y calculamos su porcentaje.

dip_orienpol_2020 <- dip_orienpol_2020 %>% 
  dplyr::count(Orientación, Voto, sort = F)%>% 
  rename(Cantidad = n) %>% 
  group_by(Orientación) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

# Reordeno variables para el gráfico

dip_orienpol_2020$Orientación <- factor(dip_orienpol_2020$Orientación, levels=c("OTROS","IZQUIERDA","CONSENSO FEDERAL / PJ NO K", "KIRCHNERISMO/PJ","CAMBIEMOS"))

dip_orienpol_2020
##                   Orientación       Voto Cantidad Porcentaje
## 1                   CAMBIEMOS ABSTENCION        3       2.59
## 2                   CAMBIEMOS AFIRMATIVO       42      36.21
## 3                   CAMBIEMOS    AUSENTE        1       0.86
## 4                   CAMBIEMOS   NEGATIVO       70      60.34
## 5  CONSENSO FEDERAL / PJ NO K AFIRMATIVO        2      18.18
## 6  CONSENSO FEDERAL / PJ NO K   NEGATIVO        9      81.82
## 7                   IZQUIERDA AFIRMATIVO        2     100.00
## 8             KIRCHNERISMO/PJ ABSTENCION        3       2.54
## 9             KIRCHNERISMO/PJ AFIRMATIVO       83      70.34
## 10            KIRCHNERISMO/PJ    AUSENTE        1       0.85
## 11            KIRCHNERISMO/PJ   NEGATIVO       31      26.27
## 12                      OTROS AFIRMATIVO        2      22.22
## 13                      OTROS   NEGATIVO        7      77.78

2.11. Armamos un gráfico con las proporciones de tipos de voto para cada orientación.

dip_orienpol_2020_plot <- ggplot(dip_orienpol_2020,
            aes(x = Orientación, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Diputadxs por tipo de Voto", 
       subtitle = "Año 2020",
       caption = "Fuente: Cámara de Diputados de la Nación",
       x = "Orientación Política", 
       y = "Cantidad") +
  theme_minimal() +
  coord_flip ()

2.12. Agregamos los titulos, subtitulos y fuentes al plotly

dip_orienpol_2020_plotly <- ggplotly(dip_orienpol_2020_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Diputadxs','<br>', '<sup>', 'Año 2020', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.12, 
                                                              y = -0.09,
                                                              text = "Fuente: Cámara de Diputados de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))



dip_orienpol_2020_plotly

2. Resultados de votaciones en Senadorxs 2020 según Orientación Política

2.13. Seleccionamos las variables que necesitamos y quitamos el registro del presidente de la cámara.

sen_orienpol_2020 <- votaciones_sen_2020 %>% 
  select(Diputado, Orientación, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

sen_orienpol_2020$Orientación <- toupper(sen_orienpol_2020$Orientación) # Pasamos categorías en mayúsculas

2.14. Agrupamos votos por orientación política.

sen_orienpol_2020 <- sen_orienpol_2020 %>% 
  dplyr::count(Orientación, Voto, sort = F)%>% 
  rename(Cantidad = n) %>% 
  group_by(Orientación) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

# Reordeno variables para el gráfico

sen_orienpol_2020$Orientación <- factor(sen_orienpol_2020$Orientación, levels=c("OTROS", "KIRCHNERISMO/PJ","CAMBIEMOS"))

sen_orienpol_2020$Voto <- factor(as.character(sen_orienpol_2020$Voto), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

sen_orienpol_2020
##       Orientación       Voto Cantidad Porcentaje
## 1       CAMBIEMOS AFIRMATIVO       11      39.29
## 2       CAMBIEMOS    AUSENTE        1       3.57
## 3       CAMBIEMOS   NEGATIVO       16      57.14
## 4 KIRCHNERISMO/PJ ABSTENCION        1       2.44
## 5 KIRCHNERISMO/PJ AFIRMATIVO       25      60.98
## 6 KIRCHNERISMO/PJ    AUSENTE        3       7.32
## 7 KIRCHNERISMO/PJ   NEGATIVO       12      29.27
## 8           OTROS AFIRMATIVO        2      66.67
## 9           OTROS   NEGATIVO        1      33.33

2.15. Armamos un gráfico con las proporciones de tipos de voto para cada orientación.

sen_orienpol_2020_plot <- ggplot(sen_orienpol_2020,
            aes(x = Orientación, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Senadorxs por tipo de Voto", 
       subtitle = "Año 2020",
       caption = "Fuente: Cámara de Senadores de la Nación",
       x = "Orientación Política", 
       y = "Cantidad") +
  theme_minimal() +
  coord_flip ()

2.16. Agregamos los titulos, subtitulos y fuentes al plotly

sen_orienpol_2020_plotly <- ggplotly(sen_orienpol_2020_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Senadorxs','<br>', '<sup>', 'Año 2020', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.12, 
                                                              y = -0.09,
                                                              text = "Fuente: Cámara de Senadores de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))


sen_orienpol_2020_plotly

3. Resultados de votaciones en Diputadxs 2018 según Provincias

3.1. Limpiamos el dataset original seleccionando las variables y filtrando por posiciones emitidas.

resul_dip18 <- votaciones_dip_2018 %>% 
  select(Diputado, Provincia, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

#Renombramos registros de CABA
resul_dip18$Provincia[resul_dip18$Provincia == 'CDAD. AUT. BS. AS.'] <- 'C.A.B.A.'

3.2. Cambiamos las clases de las variables.

# Se cambia la clase de variables "Provincia" y "Voto" de character a factor
class(resul_dip18$Provincia)
## [1] "character"
resul_dip18$Provincia <- as.factor(resul_dip18$Provincia)

class(resul_dip18$Voto)
## [1] "character"
resul_dip18$Voto <- as.factor(resul_dip18$Voto)

3.3. Construimos las tablas que necesitamos para graficar. Tabla 1 - votos

table(resul_dip18$Voto)
## 
## ABSTENCION AFIRMATIVO    AUSENTE   NEGATIVO 
##          1        129          1        125
#Lo anterior lo pasamos a un data: 
Dip18_voto <- as.data.frame(table(resul_dip18$Voto))

#Se crea una nueva variable con los porcentajes de los votos
Dip18_voto$pct <- (Dip18_voto$Freq/257)*100

#Reducimos los decimales de la variable %
Dip18_voto$pct <- round(Dip18_voto$pct,2)

#Se renombran las variables
colnames(Dip18_voto) <- c("Voto", "Numero", "Porcentaje")

Dip18_voto
##         Voto Numero Porcentaje
## 1 ABSTENCION      1       0.39
## 2 AFIRMATIVO    129      50.19
## 3    AUSENTE      1       0.39
## 4   NEGATIVO    125      48.64

Tabla 2 - Dip por provincia

table(resul_dip18$Provincia)
## 
##        BUENOS AIRES            C.A.B.A.           CATAMARCA               CHACO 
##                  69                  25                   5                   7 
##              CHUBUT             CÓRDOBA          CORRIENTES          ENTRE RÍOS 
##                   5                  18                   7                   9 
##             FORMOSA               JUJUY            LA PAMPA            LA RIOJA 
##                   5                   6                   5                   5 
##             MENDOZA            MISIONES             NEUQUÉN           RIO NEGRO 
##                  10                   7                   5                   5 
##               SALTA            SAN JUAN            SAN LUIS          SANTA CRUZ 
##                   7                   6                   5                   5 
##            SANTA FE SANTIAGO DEL ESTERO    TIERRA DEL FUEGO             TUCUMÁN 
##                  19                   7                   5                   9
#Se crea un data del número de dip por provincia: 
Dip18_provincia <- as.data.frame(table(resul_dip18$Provincia))

#Se renombran las variables
colnames(Dip18_provincia) <- c("Provincia", "No.Dip")

Dip18_provincia
##              Provincia No.Dip
## 1         BUENOS AIRES     69
## 2             C.A.B.A.     25
## 3            CATAMARCA      5
## 4                CHACO      7
## 5               CHUBUT      5
## 6              CÓRDOBA     18
## 7           CORRIENTES      7
## 8           ENTRE RÍOS      9
## 9              FORMOSA      5
## 10               JUJUY      6
## 11            LA PAMPA      5
## 12            LA RIOJA      5
## 13             MENDOZA     10
## 14            MISIONES      7
## 15             NEUQUÉN      5
## 16           RIO NEGRO      5
## 17               SALTA      7
## 18            SAN JUAN      6
## 19            SAN LUIS      5
## 20          SANTA CRUZ      5
## 21            SANTA FE     19
## 22 SANTIAGO DEL ESTERO      7
## 23    TIERRA DEL FUEGO      5
## 24             TUCUMÁN      9

Tabla 3 - Voto según provincia

Dip18_voto_provincia <- resul_dip18 %>%
    group_by(Provincia) %>%
    dplyr::count(Voto)

#Se renombra las variables
colnames(Dip18_voto_provincia) <- c("Provincia", "Voto", "Frecuencia")

Dip18_voto_provincia
## # A tibble: 46 x 3
## # Groups:   Provincia [24]
##    Provincia    Voto       Frecuencia
##    <fct>        <fct>           <int>
##  1 BUENOS AIRES AFIRMATIVO         49
##  2 BUENOS AIRES AUSENTE             1
##  3 BUENOS AIRES NEGATIVO           19
##  4 C.A.B.A.     AFIRMATIVO         16
##  5 C.A.B.A.     NEGATIVO            9
##  6 CATAMARCA    AFIRMATIVO          1
##  7 CATAMARCA    NEGATIVO            4
##  8 CHACO        AFIRMATIVO          3
##  9 CHACO        NEGATIVO            4
## 10 CHUBUT       AFIRMATIVO          2
## # ... with 36 more rows

3.4. Concatenación de las tablas en una base.

# Tabla 2 Dip18_provincia + Tabla 3 Dip18_voto_provincia
DipVotoProv18 <- merge(Dip18_provincia, Dip18_voto_provincia)

#Nueva variable con % del voto según el # de dip para cada prov 
DipVotoProv18$ptc <- DipVotoProv18$Frecuencia/DipVotoProv18$No.Dip*100

#Reducimos los decimales de la variable %
DipVotoProv18$ptc <- round(DipVotoProv18$ptc,2)

#Se renombra las variables
colnames(DipVotoProv18) <- c("Provincia", "No.Dip", "Voto", "Frecuencia","Porcentaje")

#Se respalda base anterior
Dip18_aborto <- DipVotoProv18

3.5. Creamos grilla de Argentina para mapa geofacet.

argentina_grid2 <- data.frame(
  col = c(1, 3, 5, 1, 2, 1, 3, 4, 2, 2, 4, 1, 3, 3, 4, 1, 2, 2, 1, 1, 2, 1, 1, 1),
  row = c(1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10),
  code = c("AR-Y", "AR-P", "AR-N", "AR-A", "AR-T", "AR-K", "AR-H", "AR-W", "AR-G", "AR-X", "AR-E", "AR-F", "AR-S", "AR-B", "AR-C", "AR-J", "AR-D", "AR-L", "AR-M", "AR-Q", "AR-R", "AR-U", "AR-Z", "AR-V"),
  name_es = c("Jujuy", "Formosa", "Misiones", "Salta", "Tucumán", "Catamarca",
              "Chaco", "Corrientes", "S.del.Estero", "Córdoba", "Entre.Ríos", "La.Rioja", "Santa.Fe", "Buenos.Aires", "C.A.B.A.", "San.Juan", "San.Luis", "La.Pampa", "Mendoza", "Neuquén", "Río.Negro", "Chubut", "Santa.Cruz", "T.del.Fuego"), stringsAsFactors = FALSE)

3.6 Igualar el nombre de las provincias.

#Cambiar los nombres de Dip18_aborto$Provincia por argentina_grid2$name_es
unique(argentina_grid2$name_es)
##  [1] "Jujuy"        "Formosa"      "Misiones"     "Salta"        "Tucumán"     
##  [6] "Catamarca"    "Chaco"        "Corrientes"   "S.del.Estero" "Córdoba"     
## [11] "Entre.Ríos"   "La.Rioja"     "Santa.Fe"     "Buenos.Aires" "C.A.B.A."    
## [16] "San.Juan"     "San.Luis"     "La.Pampa"     "Mendoza"      "Neuquén"     
## [21] "Río.Negro"    "Chubut"       "Santa.Cruz"   "T.del.Fuego"
unique(Dip18_aborto$Provincia)
##  [1] BUENOS AIRES        C.A.B.A.            CATAMARCA          
##  [4] CHACO               CHUBUT              CÓRDOBA            
##  [7] CORRIENTES          ENTRE RÍOS          FORMOSA            
## [10] JUJUY               LA PAMPA            LA RIOJA           
## [13] MENDOZA             MISIONES            NEUQUÉN            
## [16] RIO NEGRO           SALTA               SAN JUAN           
## [19] SAN LUIS            SANTA CRUZ          SANTA FE           
## [22] SANTIAGO DEL ESTERO TIERRA DEL FUEGO    TUCUMÁN            
## 24 Levels: BUENOS AIRES C.A.B.A. CATAMARCA CHACO CHUBUT CÓRDOBA ... TUCUMÁN
## 1.- Se cambia la clase de factor a character
class(Dip18_aborto$Provincia)
## [1] "factor"
Dip18_aborto$Provincia <- as.character(Dip18_aborto$Provincia)
## 2.- Se renombran las provincias:
Dip18_aborto <- Dip18_aborto %>%
  mutate(Provincia = case_when(
         Provincia == "TIERRA DEL FUEGO" ~ "T.del.Fuego",
         Provincia == "FORMOSA" ~ "Formosa",
         Provincia == "SANTIAGO DEL ESTERO" ~ "S.del.Estero",
         Provincia == "CORRIENTES" ~ "Corrientes",
         Provincia == "SAN JUAN" ~ "San.Juan",
         Provincia == "SAN LUIS" ~ "San.Luis",
         Provincia == "C.A.B.A." ~ "C.A.B.A.",
         Provincia == "RIO NEGRO" ~ "Río.Negro",
         Provincia == "JUJUY" ~ "Jujuy",
         Provincia == "CHACO" ~ "Chaco",
         Provincia == "MISIONES" ~ "Misiones",
         Provincia == "LA RIOJA" ~ "La.Rioja",
         Provincia == "CÓRDOBA" ~ "Córdoba",
         Provincia == "MENDOZA" ~ "Mendoza",
         Provincia == "LA PAMPA" ~ "La.Pampa",
         Provincia == "CHUBUT" ~ "Chubut",
         Provincia == "SALTA" ~ "Salta",
         Provincia == "CATAMARCA" ~ "Catamarca",
         Provincia == "TUCUMÁN" ~ "Tucumán",
         Provincia == "SANTA FE" ~ "Santa.Fe",
         Provincia == "ENTRE RÍOS" ~ "Entre.Ríos",
         Provincia == "BUENOS AIRES" ~ "Buenos.Aires",
         Provincia == "NEUQUÉN" ~ "Neuquén",
         Provincia == "SANTA CRUZ" ~ "Santa.Cruz"))

## 3.- Se regresa a factor la clase de variable
Dip18_aborto$Provincia <- as.factor(Dip18_aborto$Provincia)

# Se guarda la base que se usa para hacer los plots
write.csv(Dip18_aborto, "Dip18_aborto.csv")

3.7 Plot Dip 2018

# Cargamos la base para el plot
Dip18_aborto <- read.csv("Dip18_aborto.csv")
# Se debe cargar "argentina_grid2"

# Establecemos orden de niveles para el plot
Dip18_aborto$Voto <- factor(as.character(Dip18_aborto$Voto), levels=c("ABSTENCION", "AFIRMATIVO", "AUSENTE", "NEGATIVO"))

3.8. Graficamos.

Dip18_aborto_plot <- ggplot(Dip18_aborto, aes("", Porcentaje, fill = Voto)) +
  geom_col(alpha = 0.8) +
  scale_fill_manual(values = c("#ebe834", "#58eb34", "#9c9c91", "#eb3a34"))+
  coord_flip() +
  facet_geo(~Provincia, grid = "argentina_grid2") +
  theme_bw()+
  labs(title = "Resultados de la votación del proyecto IVE en Diputados por tipo de voto 2018",
       caption = "Fuente: Diputados Argentina",
       x = "Porcentaje (%)",
       y = NULL)+
  theme(strip.text.x = element_text(size = 8))

Dip18_aborto_plot

3. Resultados de votaciones en Senadorxs 2018 según Provincias

3.9. Limpiamos el dataset original seleccionando las variables y filtrando por posiciones emitidas.

resul_sen18 <- votaciones_sen_2018 %>% 
  select(Diputado, Provincia, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

#Renombramos registros de CABA
resul_sen18$Provincia[resul_sen18$Provincia == 'CDAD. AUT. BS. AS.'] <- 'C.A.B.A.'

resul_sen18$Provincia[70]= "BUENOS AIRES"

3.10. Cambiamos las clases de las variables.

# Se cambia la clase de variables "Provincia" y "Voto" de character a factor
class(resul_sen18$Provincia)
## [1] "character"
resul_sen18$Provincia <- as.factor(resul_sen18$Provincia)

class(resul_sen18$Voto)
## [1] "character"
resul_sen18$Voto <- as.factor(resul_sen18$Voto)

3.11. Construimos las tablas que necesitamos para graficar. Tabla 1 - votos

table(resul_sen18$Voto)
## 
## ABSTENCION AFIRMATIVO    AUSENTE   NEGATIVO 
##          2         31          1         38
#Lo anterior lo pasamos a un data: 
Sen18_voto <- as.data.frame(table(resul_sen18$Voto))

#Se crea una nueva variable con los porcentajes de los votos
Sen18_voto$pct <- (Sen18_voto$Freq/72)*100

#Reducimos los decimales de la variable %
Sen18_voto$pct <- round(Sen18_voto$pct,2)

#Se renombran las variables
colnames(Sen18_voto) <- c("Voto", "Numero", "Porcentaje")

Sen18_voto
##         Voto Numero Porcentaje
## 1 ABSTENCION      2       2.78
## 2 AFIRMATIVO     31      43.06
## 3    AUSENTE      1       1.39
## 4   NEGATIVO     38      52.78

Tabla 2 - Sen por provincia

table(resul_sen18$Provincia)
## 
##        BUENOS AIRES            C.A.B.A.           CATAMARCA               CHACO 
##                   3                   3                   3                   3 
##              CHUBUT             CÓRDOBA          CORRIENTES          ENTRE RÍOS 
##                   3                   3                   3                   3 
##             FORMOSA               JUJUY            LA PAMPA            LA RIOJA 
##                   3                   3                   3                   3 
##             MENDOZA            MISIONES             NEUQUÉN           RIO NEGRO 
##                   3                   3                   3                   3 
##               SALTA            SAN JUAN            SAN LUIS          SANTA CRUZ 
##                   3                   3                   3                   3 
##            SANTA FE SANTIAGO DEL ESTERO    TIERRA DEL FUEGO             TUCUMÁN 
##                   3                   3                   3                   3
#Se crea un data del número de dip por provincia: 
Sen18_provincia <- as.data.frame(table(resul_sen18$Provincia))

#Se renombran las variables
colnames(Sen18_provincia) <- c("Provincia", "No.Dip")

Sen18_provincia
##              Provincia No.Dip
## 1         BUENOS AIRES      3
## 2             C.A.B.A.      3
## 3            CATAMARCA      3
## 4                CHACO      3
## 5               CHUBUT      3
## 6              CÓRDOBA      3
## 7           CORRIENTES      3
## 8           ENTRE RÍOS      3
## 9              FORMOSA      3
## 10               JUJUY      3
## 11            LA PAMPA      3
## 12            LA RIOJA      3
## 13             MENDOZA      3
## 14            MISIONES      3
## 15             NEUQUÉN      3
## 16           RIO NEGRO      3
## 17               SALTA      3
## 18            SAN JUAN      3
## 19            SAN LUIS      3
## 20          SANTA CRUZ      3
## 21            SANTA FE      3
## 22 SANTIAGO DEL ESTERO      3
## 23    TIERRA DEL FUEGO      3
## 24             TUCUMÁN      3

Tabla 3 - Voto según provincia

Sen18_voto_provincia <- resul_sen18 %>%
    group_by(Provincia) %>%
    dplyr::count(Voto)

#Se renombra las variables
colnames(Sen18_voto_provincia) <- c("Provincia", "Voto", "Frecuencia")

Sen18_voto_provincia
## # A tibble: 42 x 3
## # Groups:   Provincia [24]
##    Provincia    Voto       Frecuencia
##    <fct>        <fct>           <int>
##  1 BUENOS AIRES AFIRMATIVO          2
##  2 BUENOS AIRES NEGATIVO            1
##  3 C.A.B.A.     AFIRMATIVO          1
##  4 C.A.B.A.     NEGATIVO            2
##  5 CATAMARCA    AFIRMATIVO          1
##  6 CATAMARCA    NEGATIVO            2
##  7 CHACO        AFIRMATIVO          2
##  8 CHACO        NEGATIVO            1
##  9 CHUBUT       AFIRMATIVO          3
## 10 CÓRDOBA      AFIRMATIVO          3
## # ... with 32 more rows

3.12. Concatenación de las tablas en una base.

# Tabla 2 Sen18_provincia + Tabla 3 Sen18_voto_provincia
SenVotoProv18 <- merge(Sen18_provincia, Sen18_voto_provincia)

#Nueva variable con % del voto según el # de dip para cada prov 
SenVotoProv18$ptc <- SenVotoProv18$Frecuencia/SenVotoProv18$No.Dip*100

#Reducimos los decimales de la variable %
SenVotoProv18$ptc <- round(SenVotoProv18$ptc,2)

#Se renombra las variables
colnames(SenVotoProv18) <- c("Provincia", "No.Dip", "Voto", "Frecuencia","Porcentaje")

#Se respalda base anterior
Sen18_aborto <- SenVotoProv18

3.13. Creamos grilla de Argentina para mapa geofacet.

argentina_grid2 <- data.frame(
  col = c(1, 3, 5, 1, 2, 1, 3, 4, 2, 2, 4, 1, 3, 3, 4, 1, 2, 2, 1, 1, 2, 1, 1, 1),
  row = c(1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10),
  code = c("AR-Y", "AR-P", "AR-N", "AR-A", "AR-T", "AR-K", "AR-H", "AR-W", "AR-G", "AR-X", "AR-E", "AR-F", "AR-S", "AR-B", "AR-C", "AR-J", "AR-D", "AR-L", "AR-M", "AR-Q", "AR-R", "AR-U", "AR-Z", "AR-V"),
  name_es = c("Jujuy", "Formosa", "Misiones", "Salta", "Tucumán", "Catamarca",
              "Chaco", "Corrientes", "S.del.Estero", "Córdoba", "Entre.Ríos", "La.Rioja", "Santa.Fe", "Buenos.Aires", "C.A.B.A.", "San.Juan", "San.Luis", "La.Pampa", "Mendoza", "Neuquén", "Río.Negro", "Chubut", "Santa.Cruz", "T.del.Fuego"), stringsAsFactors = FALSE)

3.14. Igualar el nombre de las provincias.

#Cambiar los nombres de Sen18_aborto$Provincia por argentina_grid2$name_es
unique(argentina_grid2$name_es)
##  [1] "Jujuy"        "Formosa"      "Misiones"     "Salta"        "Tucumán"     
##  [6] "Catamarca"    "Chaco"        "Corrientes"   "S.del.Estero" "Córdoba"     
## [11] "Entre.Ríos"   "La.Rioja"     "Santa.Fe"     "Buenos.Aires" "C.A.B.A."    
## [16] "San.Juan"     "San.Luis"     "La.Pampa"     "Mendoza"      "Neuquén"     
## [21] "Río.Negro"    "Chubut"       "Santa.Cruz"   "T.del.Fuego"
unique(Sen18_aborto$Provincia)
##  [1] BUENOS AIRES        C.A.B.A.            CATAMARCA          
##  [4] CHACO               CHUBUT              CÓRDOBA            
##  [7] CORRIENTES          ENTRE RÍOS          FORMOSA            
## [10] JUJUY               LA PAMPA            LA RIOJA           
## [13] MENDOZA             MISIONES            NEUQUÉN            
## [16] RIO NEGRO           SALTA               SAN JUAN           
## [19] SAN LUIS            SANTA CRUZ          SANTA FE           
## [22] SANTIAGO DEL ESTERO TIERRA DEL FUEGO    TUCUMÁN            
## 24 Levels: BUENOS AIRES C.A.B.A. CATAMARCA CHACO CHUBUT CÓRDOBA ... TUCUMÁN
## 1.- Se cambia la clase de factor a character
class(Sen18_aborto$Provincia)
## [1] "factor"
Sen18_aborto$Provincia <- as.character(Sen18_aborto$Provincia)
## 2.- Se renombran las provincias:
Sen18_aborto <- Sen18_aborto %>%
  mutate(Provincia = case_when(
         Provincia == "TIERRA DEL FUEGO" ~ "T.del.Fuego",
         Provincia == "FORMOSA" ~ "Formosa",
         Provincia == "SANTIAGO DEL ESTERO" ~ "S.del.Estero",
         Provincia == "CORRIENTES" ~ "Corrientes",
         Provincia == "SAN JUAN" ~ "San.Juan",
         Provincia == "SAN LUIS" ~ "San.Luis",
         Provincia == "C.A.B.A." ~ "C.A.B.A.",
         Provincia == "RIO NEGRO" ~ "Río.Negro",
         Provincia == "JUJUY" ~ "Jujuy",
         Provincia == "CHACO" ~ "Chaco",
         Provincia == "MISIONES" ~ "Misiones",
         Provincia == "LA RIOJA" ~ "La.Rioja",
         Provincia == "CÓRDOBA" ~ "Córdoba",
         Provincia == "MENDOZA" ~ "Mendoza",
         Provincia == "LA PAMPA" ~ "La.Pampa",
         Provincia == "CHUBUT" ~ "Chubut",
         Provincia == "SALTA" ~ "Salta",
         Provincia == "CATAMARCA" ~ "Catamarca",
         Provincia == "TUCUMÁN" ~ "Tucumán",
         Provincia == "SANTA FE" ~ "Santa.Fe",
         Provincia == "ENTRE RÍOS" ~ "Entre.Ríos",
         Provincia == "BUENOS AIRES" ~ "Buenos.Aires",
         Provincia == "NEUQUÉN" ~ "Neuquén",
         Provincia == "SANTA CRUZ" ~ "Santa.Cruz"))

## 3.- Se regresa a factor la clase de variable
Sen18_aborto$Provincia <- as.factor(Sen18_aborto$Provincia)

# Se guarda la base que se usa para hacer los plots
write.csv(Sen18_aborto, "Sen18_aborto.csv")

3.15. Plot Sen 2018

# Cargamos la base para el plot
Sen18_aborto <- read.csv("Sen18_aborto.csv")
# Se debe cargar "argentina_grid2"

# Establecemos orden de niveles para el plot
Sen18_aborto$Voto <- factor(as.character(Sen18_aborto$Voto), levels=c("ABSTENCION", "AFIRMATIVO", "AUSENTE", "NEGATIVO"))

3.16. Graficamos.

Sen18_aborto_plot <- ggplot(Sen18_aborto, aes("", Porcentaje, fill = Voto)) +
  geom_col(alpha = 0.8) +
  scale_fill_manual(values = c("#ebe834", "#58eb34", "#9c9c91", "#eb3a34"))+
  coord_flip() +
  facet_geo(~Provincia, grid = "argentina_grid2") +
  theme_bw()+
  labs(title = "Resultados de la votación del proyecto IVE en Senadores por tipo de voto 2018",
       caption = "Fuente: Senadores Argentina",
       x = "Porcentaje (%)",
       y = NULL)+
  theme(strip.text.x = element_text(size = 8))

Sen18_aborto_plot

3. Resultados de votaciones en Diputadxs 2020 según Provincias

3.17. Limpiamos el dataset original seleccionando las variables y filtrando por posiciones emitidas.

resul_dip20 <- votaciones_dip_2020 %>% 
  select(Diputado, Provincia, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

#Renombramos registros de CABA
resul_dip20$Provincia[resul_dip20$Provincia == 'CDAD. AUT. BS. AS.'] <- 'C.A.B.A.'

3.18. Cambiamos las clases de las variables.

# Se cambia la clase de variables "Provincia" y "Voto" de character a factor
class(resul_dip20$Provincia)
## [1] "character"
resul_dip20$Provincia <- as.factor(resul_dip20$Provincia)

class(resul_dip20$Voto)
## [1] "character"
resul_dip20$Voto <- as.factor(resul_dip20$Voto)

3.19. Construimos las tablas que necesitamos para graficar. Tabla 1 - votos

table(resul_dip20$Voto)
## 
## ABSTENCION AFIRMATIVO    AUSENTE   NEGATIVO 
##          6        131          2        117
#Lo anterior lo pasamos a un data: 
Dip20_voto <- as.data.frame(table(resul_dip20$Voto))

#Se crea una nueva variable con los porcentajes de los votos
Dip20_voto$pct <- (Dip20_voto$Freq/257)*100

#Reducimos los decimales de la variable %
Dip20_voto$pct <- round(Dip20_voto$pct,2)

#Se renombran las variables
colnames(Dip20_voto) <- c("Voto", "Numero", "Porcentaje")

Dip20_voto
##         Voto Numero Porcentaje
## 1 ABSTENCION      6       2.33
## 2 AFIRMATIVO    131      50.97
## 3    AUSENTE      2       0.78
## 4   NEGATIVO    117      45.53

Tabla 2 - Dip por provincia

table(resul_dip20$Provincia)
## 
##        BUENOS AIRES            C.A.B.A.           CATAMARCA               CHACO 
##                  68                  25                   5                   7 
##              CHUBUT             CÓRDOBA          CORRIENTES          ENTRE RÍOS 
##                   5                  18                   7                   9 
##             FORMOSA               JUJUY            LA PAMPA            LA RIOJA 
##                   5                   6                   5                   5 
##             MENDOZA            MISIONES             NEUQUÉN           RIO NEGRO 
##                  10                   7                   5                   5 
##               SALTA            SAN JUAN            SAN LUIS          SANTA CRUZ 
##                   7                   6                   5                   6 
##            SANTA FE SANTIAGO DEL ESTERO    TIERRA DEL FUEGO             TUCUMÁN 
##                  19                   7                   5                   9
#Se crea un data del número de dip por provincia: 
Dip20_provincia <- as.data.frame(table(resul_dip20$Provincia))

#Se renombran las variables
colnames(Dip20_provincia) <- c("Provincia", "No.Dip")

Dip20_provincia
##              Provincia No.Dip
## 1         BUENOS AIRES     68
## 2             C.A.B.A.     25
## 3            CATAMARCA      5
## 4                CHACO      7
## 5               CHUBUT      5
## 6              CÓRDOBA     18
## 7           CORRIENTES      7
## 8           ENTRE RÍOS      9
## 9              FORMOSA      5
## 10               JUJUY      6
## 11            LA PAMPA      5
## 12            LA RIOJA      5
## 13             MENDOZA     10
## 14            MISIONES      7
## 15             NEUQUÉN      5
## 16           RIO NEGRO      5
## 17               SALTA      7
## 18            SAN JUAN      6
## 19            SAN LUIS      5
## 20          SANTA CRUZ      6
## 21            SANTA FE     19
## 22 SANTIAGO DEL ESTERO      7
## 23    TIERRA DEL FUEGO      5
## 24             TUCUMÁN      9

Tabla 3 - Voto según provincia

Dip20_voto_provincia <- resul_dip20 %>%
    group_by(Provincia) %>%
    dplyr::count(Voto)

#Se renombra las variables
colnames(Dip20_voto_provincia) <- c("Provincia", "Voto", "Frecuencia")

Dip20_voto_provincia
## # A tibble: 53 x 3
## # Groups:   Provincia [24]
##    Provincia    Voto       Frecuencia
##    <fct>        <fct>           <int>
##  1 BUENOS AIRES ABSTENCION          1
##  2 BUENOS AIRES AFIRMATIVO         49
##  3 BUENOS AIRES AUSENTE             1
##  4 BUENOS AIRES NEGATIVO           17
##  5 C.A.B.A.     ABSTENCION          2
##  6 C.A.B.A.     AFIRMATIVO         15
##  7 C.A.B.A.     NEGATIVO            8
##  8 CATAMARCA    AFIRMATIVO          2
##  9 CATAMARCA    NEGATIVO            3
## 10 CHACO        AFIRMATIVO          1
## # ... with 43 more rows

3.20. Concatenación de las tablas en una base.

# Tabla 2 Dip20_provincia + Tabla 3 Dip20_voto_provincia
DipVotoProv20 <- merge(Dip20_provincia, Dip20_voto_provincia)

#Nueva variable con % del voto según el # de dip para cada prov 
DipVotoProv20$ptc <- DipVotoProv20$Frecuencia/DipVotoProv20$No.Dip*100

#Reducimos los decimales de la variable %
DipVotoProv20$ptc <- round(DipVotoProv20$ptc,2)

#Se renombra las variables
colnames(DipVotoProv20) <- c("Provincia", "No.Dip", "Voto", "Frecuencia","Porcentaje")

#Se respalda base anterior
Dip20_aborto <- DipVotoProv20

3.21. Creamos grilla de Argentina para mapa geofacet.

argentina_grid2 <- data.frame(
  col = c(1, 3, 5, 1, 2, 1, 3, 4, 2, 2, 4, 1, 3, 3, 4, 1, 2, 2, 1, 1, 2, 1, 1, 1),
  row = c(1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10),
  code = c("AR-Y", "AR-P", "AR-N", "AR-A", "AR-T", "AR-K", "AR-H", "AR-W", "AR-G", "AR-X", "AR-E", "AR-F", "AR-S", "AR-B", "AR-C", "AR-J", "AR-D", "AR-L", "AR-M", "AR-Q", "AR-R", "AR-U", "AR-Z", "AR-V"),
  name_es = c("Jujuy", "Formosa", "Misiones", "Salta", "Tucumán", "Catamarca",
              "Chaco", "Corrientes", "S.del.Estero", "Córdoba", "Entre.Ríos", "La.Rioja", "Santa.Fe", "Buenos.Aires", "C.A.B.A.", "San.Juan", "San.Luis", "La.Pampa", "Mendoza", "Neuquén", "Río.Negro", "Chubut", "Santa.Cruz", "T.del.Fuego"), stringsAsFactors = FALSE)

3.22. Igualar el nombre de las provincias.

#Cambiar los nombres de Dip20_aborto$Provincia por argentina_grid2$name_es
unique(argentina_grid2$name_es)
##  [1] "Jujuy"        "Formosa"      "Misiones"     "Salta"        "Tucumán"     
##  [6] "Catamarca"    "Chaco"        "Corrientes"   "S.del.Estero" "Córdoba"     
## [11] "Entre.Ríos"   "La.Rioja"     "Santa.Fe"     "Buenos.Aires" "C.A.B.A."    
## [16] "San.Juan"     "San.Luis"     "La.Pampa"     "Mendoza"      "Neuquén"     
## [21] "Río.Negro"    "Chubut"       "Santa.Cruz"   "T.del.Fuego"
unique(Dip20_aborto$Provincia)
##  [1] BUENOS AIRES        C.A.B.A.            CATAMARCA          
##  [4] CHACO               CHUBUT              CÓRDOBA            
##  [7] CORRIENTES          ENTRE RÍOS          FORMOSA            
## [10] JUJUY               LA PAMPA            LA RIOJA           
## [13] MENDOZA             MISIONES            NEUQUÉN            
## [16] RIO NEGRO           SALTA               SAN JUAN           
## [19] SAN LUIS            SANTA CRUZ          SANTA FE           
## [22] SANTIAGO DEL ESTERO TIERRA DEL FUEGO    TUCUMÁN            
## 24 Levels: BUENOS AIRES C.A.B.A. CATAMARCA CHACO CHUBUT CÓRDOBA ... TUCUMÁN
## 1.- Se cambia la clase de factor a character
class(Dip20_aborto$Provincia)
## [1] "factor"
Dip20_aborto$Provincia <- as.character(Dip20_aborto$Provincia)
## 2.- Se renombran las provincias:
Dip20_aborto <- Dip20_aborto %>%
  mutate(Provincia = case_when(
         Provincia == "TIERRA DEL FUEGO" ~ "T.del.Fuego",
         Provincia == "FORMOSA" ~ "Formosa",
         Provincia == "SANTIAGO DEL ESTERO" ~ "S.del.Estero",
         Provincia == "CORRIENTES" ~ "Corrientes",
         Provincia == "SAN JUAN" ~ "San.Juan",
         Provincia == "SAN LUIS" ~ "San.Luis",
         Provincia == "C.A.B.A." ~ "C.A.B.A.",
         Provincia == "RIO NEGRO" ~ "Río.Negro",
         Provincia == "JUJUY" ~ "Jujuy",
         Provincia == "CHACO" ~ "Chaco",
         Provincia == "MISIONES" ~ "Misiones",
         Provincia == "LA RIOJA" ~ "La.Rioja",
         Provincia == "CÓRDOBA" ~ "Córdoba",
         Provincia == "MENDOZA" ~ "Mendoza",
         Provincia == "LA PAMPA" ~ "La.Pampa",
         Provincia == "CHUBUT" ~ "Chubut",
         Provincia == "SALTA" ~ "Salta",
         Provincia == "CATAMARCA" ~ "Catamarca",
         Provincia == "TUCUMÁN" ~ "Tucumán",
         Provincia == "SANTA FE" ~ "Santa.Fe",
         Provincia == "ENTRE RÍOS" ~ "Entre.Ríos",
         Provincia == "BUENOS AIRES" ~ "Buenos.Aires",
         Provincia == "NEUQUÉN" ~ "Neuquén",
         Provincia == "SANTA CRUZ" ~ "Santa.Cruz"))

## 3.- Se regresa a factor la clase de variable
Dip20_aborto$Provincia <- as.factor(Dip20_aborto$Provincia)

# Se guarda la base que se usa para hacer los plots
write.csv(Dip20_aborto, "Dip20_aborto.csv")

3.23. Plot Dip 2020

# Cargamos la base para el plot
Dip20_aborto <- read.csv("Dip20_aborto.csv")
# Se debe cargar "argentina_grid2"

# Establecemos orden de niveles para el plot
Dip20_aborto$Voto <- factor(as.character(Dip20_aborto$Voto), levels=c("ABSTENCION", "AFIRMATIVO", "AUSENTE", "NEGATIVO"))

3.24. Graficamos.

Dip20_aborto_plot <- ggplot(Dip20_aborto, aes("", Porcentaje, fill = Voto)) +
  geom_col(alpha = 0.8) +
  scale_fill_manual(values = c("#ebe834", "#58eb34", "#9c9c91", "#eb3a34"))+
  coord_flip() +
  facet_geo(~Provincia, grid = "argentina_grid2") +
  theme_bw()+
  labs(title = "Resultados de la votación del proyecto IVE en Diputados por tipo de voto 2020",
       caption = "Fuente: Diputados Argentina",
       x = "Porcentaje (%)",
       y = NULL)+
  theme(strip.text.x = element_text(size = 8))

Dip20_aborto_plot

3. Resultados de votaciones en Senadorxs 2020 según Provincias

3.25. Limpiamos el dataset original seleccionando las variables y filtrando por posiciones emitidas.

resul_sen20 <- votaciones_sen_2020 %>% 
  select(Diputado, Provincia, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO')

#Renombramos registros de CABA
resul_sen20$Provincia[resul_sen20$Provincia == 'CDAD. AUT. BS. AS.'] <- 'C.A.B.A.'

table(resul_sen20$Provincia)
## 
##                            BUENOS AIRES            C.A.B.A.           CATAMARCA 
##                  15                   1                   2                   3 
##               CHACO              CHUBUT             CÓRDOBA          CORRIENTES 
##                   1                   3                   3                   3 
##          ENTRE RÍOS             FORMOSA               JUJUY            LA PAMPA 
##                   1                   3                   3                   3 
##            LA RIOJA             MENDOZA            MISIONES             NEUQUÉN 
##                   3                   3                   3                   2 
##           RIO NEGRO               SALTA            SAN JUAN            SAN LUIS 
##                   2                   2                   3                   3 
##          SANTA CRUZ            SANTA FE SANTIAGO DEL ESTERO    TIERRA DEL FUEGO 
##                   3                   2                   1                   1 
##             TUCUMÁN 
##                   3
#Rellenamos los valores que faltan
resul_sen20$Provincia[53] <- "BUENOS AIRES"
resul_sen20$Provincia[3] <- "C.A.B.A."
resul_sen20$Provincia[7] <- "ENTRE RÍOS"
resul_sen20$Provincia[10] <- "NEUQUÉN"
resul_sen20$Provincia[12] <- "TIERRA DEL FUEGO"
resul_sen20$Provincia[14] <- "SALTA"
resul_sen20$Provincia[24] <- "BUENOS AIRES"
resul_sen20$Provincia[30] <- "RIO NEGRO"
resul_sen20$Provincia[33] <- "SANTA FE"
resul_sen20$Provincia[35] <- "ENTRE RÍOS"
resul_sen20$Provincia[37] <- "C.A.B.A."
resul_sen20$Provincia[45] <- "SANTIAGO DEL ESTERO"
resul_sen20$Provincia[49] <- "CHACO"
resul_sen20$Provincia[58] <- "TIERRA DEL FUEGO"
resul_sen20$Provincia[61] <- "SANTIAGO DEL ESTERO"
resul_sen20$Provincia[66] <- "CHACO"

table(resul_sen20$Provincia)
## 
##        BUENOS AIRES            C.A.B.A.           CATAMARCA               CHACO 
##                   3                   3                   3                   3 
##              CHUBUT             CÓRDOBA          CORRIENTES          ENTRE RÍOS 
##                   3                   3                   3                   3 
##             FORMOSA               JUJUY            LA PAMPA            LA RIOJA 
##                   3                   3                   3                   3 
##             MENDOZA            MISIONES             NEUQUÉN           RIO NEGRO 
##                   3                   3                   3                   3 
##               SALTA            SAN JUAN            SAN LUIS          SANTA CRUZ 
##                   3                   3                   3                   3 
##            SANTA FE SANTIAGO DEL ESTERO    TIERRA DEL FUEGO             TUCUMÁN 
##                   3                   3                   3                   3

3.26. Cambiamos las clases de las variables.

# Se cambia la clase de variables "Provincia" y "Voto" de character a factor
class(resul_sen20$Provincia)
## [1] "character"
resul_sen20$Provincia <- as.factor(resul_sen20$Provincia)

class(resul_sen18$Voto)
## [1] "factor"
resul_sen20$Voto <- as.factor(resul_sen20$Voto)

3.27. Construimos las tablas que necesitamos para graficar. Tabla 1 - votos

table(resul_sen20$Voto)
## 
## ABSTENCION AFIRMATIVO    AUSENTE   NEGATIVO 
##          1         38          4         29
#Lo anterior lo pasamos a un data: 
Sen20_voto <- as.data.frame(table(resul_sen20$Voto))

#Se crea una nueva variable con los porcentajes de los votos
Sen20_voto$pct <- (Sen20_voto$Freq/72)*100

#Reducimos los decimales de la variable %
Sen20_voto$pct <- round(Sen20_voto$pct,2)

#Se renombran las variables
colnames(Sen20_voto) <- c("Voto", "Numero", "Porcentaje")

Sen20_voto
##         Voto Numero Porcentaje
## 1 ABSTENCION      1       1.39
## 2 AFIRMATIVO     38      52.78
## 3    AUSENTE      4       5.56
## 4   NEGATIVO     29      40.28

Tabla 2 - Sen por provincia

table(resul_sen20$Provincia)
## 
##        BUENOS AIRES            C.A.B.A.           CATAMARCA               CHACO 
##                   3                   3                   3                   3 
##              CHUBUT             CÓRDOBA          CORRIENTES          ENTRE RÍOS 
##                   3                   3                   3                   3 
##             FORMOSA               JUJUY            LA PAMPA            LA RIOJA 
##                   3                   3                   3                   3 
##             MENDOZA            MISIONES             NEUQUÉN           RIO NEGRO 
##                   3                   3                   3                   3 
##               SALTA            SAN JUAN            SAN LUIS          SANTA CRUZ 
##                   3                   3                   3                   3 
##            SANTA FE SANTIAGO DEL ESTERO    TIERRA DEL FUEGO             TUCUMÁN 
##                   3                   3                   3                   3
#Se crea un data del número de dip por provincia: 
Sen20_provincia <- as.data.frame(table(resul_sen20$Provincia))

#Se renombran las variables
colnames(Sen20_provincia) <- c("Provincia", "No.Dip")

Sen20_provincia
##              Provincia No.Dip
## 1         BUENOS AIRES      3
## 2             C.A.B.A.      3
## 3            CATAMARCA      3
## 4                CHACO      3
## 5               CHUBUT      3
## 6              CÓRDOBA      3
## 7           CORRIENTES      3
## 8           ENTRE RÍOS      3
## 9              FORMOSA      3
## 10               JUJUY      3
## 11            LA PAMPA      3
## 12            LA RIOJA      3
## 13             MENDOZA      3
## 14            MISIONES      3
## 15             NEUQUÉN      3
## 16           RIO NEGRO      3
## 17               SALTA      3
## 18            SAN JUAN      3
## 19            SAN LUIS      3
## 20          SANTA CRUZ      3
## 21            SANTA FE      3
## 22 SANTIAGO DEL ESTERO      3
## 23    TIERRA DEL FUEGO      3
## 24             TUCUMÁN      3

Tabla 3 - Voto según provincia

Sen20_voto_provincia <- resul_sen20 %>%
    group_by(Provincia) %>%
    dplyr::count(Voto)

#Se renombra las variables
colnames(Sen20_voto_provincia) <- c("Provincia", "Voto", "Frecuencia")

Sen20_voto_provincia
## # A tibble: 43 x 3
## # Groups:   Provincia [24]
##    Provincia    Voto       Frecuencia
##    <fct>        <fct>           <int>
##  1 BUENOS AIRES AFIRMATIVO          2
##  2 BUENOS AIRES NEGATIVO            1
##  3 C.A.B.A.     AFIRMATIVO          3
##  4 CATAMARCA    AFIRMATIVO          1
##  5 CATAMARCA    NEGATIVO            2
##  6 CHACO        AFIRMATIVO          1
##  7 CHACO        NEGATIVO            2
##  8 CHUBUT       AFIRMATIVO          3
##  9 CÓRDOBA      AFIRMATIVO          3
## 10 CORRIENTES   AFIRMATIVO          1
## # ... with 33 more rows

3.28. Concatenación de las tablas en una base.

# Tabla 2 Sen20_provincia + Tabla 3 Sen20_voto_provincia
SenVotoProv20 <- merge(Sen20_provincia, Sen20_voto_provincia)

#Nueva variable con % del voto según el # de dip para cada prov 
SenVotoProv20$ptc <- SenVotoProv20$Frecuencia/SenVotoProv20$No.Dip*100

#Reducimos los decimales de la variable %
SenVotoProv20$ptc <- round(SenVotoProv20$ptc,2)

#Se renombra las variables
colnames(SenVotoProv20) <- c("Provincia", "No.Dip", "Voto", "Frecuencia","Porcentaje")

#Se respalda base anterior
Sen20_aborto <- SenVotoProv20

3.29. Creamos grilla de Argentina para mapa geofacet.

argentina_grid2 <- data.frame(
  col = c(1, 3, 5, 1, 2, 1, 3, 4, 2, 2, 4, 1, 3, 3, 4, 1, 2, 2, 1, 1, 2, 1, 1, 1),
  row = c(1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 8, 9, 10),
  code = c("AR-Y", "AR-P", "AR-N", "AR-A", "AR-T", "AR-K", "AR-H", "AR-W", "AR-G", "AR-X", "AR-E", "AR-F", "AR-S", "AR-B", "AR-C", "AR-J", "AR-D", "AR-L", "AR-M", "AR-Q", "AR-R", "AR-U", "AR-Z", "AR-V"),
  name_es = c("Jujuy", "Formosa", "Misiones", "Salta", "Tucumán", "Catamarca",
              "Chaco", "Corrientes", "S.del.Estero", "Córdoba", "Entre.Ríos", "La.Rioja", "Santa.Fe", "Buenos.Aires", "C.A.B.A.", "San.Juan", "San.Luis", "La.Pampa", "Mendoza", "Neuquén", "Río.Negro", "Chubut", "Santa.Cruz", "T.del.Fuego"), stringsAsFactors = FALSE)

3.30. Igualar el nombre de las provincias.

#Cambiar los nombres de Sen20_aborto$Provincia por argentina_grid2$name_es
unique(argentina_grid2$name_es)
##  [1] "Jujuy"        "Formosa"      "Misiones"     "Salta"        "Tucumán"     
##  [6] "Catamarca"    "Chaco"        "Corrientes"   "S.del.Estero" "Córdoba"     
## [11] "Entre.Ríos"   "La.Rioja"     "Santa.Fe"     "Buenos.Aires" "C.A.B.A."    
## [16] "San.Juan"     "San.Luis"     "La.Pampa"     "Mendoza"      "Neuquén"     
## [21] "Río.Negro"    "Chubut"       "Santa.Cruz"   "T.del.Fuego"
unique(Sen20_aborto$Provincia)
##  [1] BUENOS AIRES        C.A.B.A.            CATAMARCA          
##  [4] CHACO               CHUBUT              CÓRDOBA            
##  [7] CORRIENTES          ENTRE RÍOS          FORMOSA            
## [10] JUJUY               LA PAMPA            LA RIOJA           
## [13] MENDOZA             MISIONES            NEUQUÉN            
## [16] RIO NEGRO           SALTA               SAN JUAN           
## [19] SAN LUIS            SANTA CRUZ          SANTA FE           
## [22] SANTIAGO DEL ESTERO TIERRA DEL FUEGO    TUCUMÁN            
## 24 Levels: BUENOS AIRES C.A.B.A. CATAMARCA CHACO CHUBUT CÓRDOBA ... TUCUMÁN
## 1.- Se cambia la clase de factor a character
class(Sen20_aborto$Provincia)
## [1] "factor"
Sen20_aborto$Provincia <- as.character(Sen20_aborto$Provincia)
## 2.- Se renombran las provincias:
Sen20_aborto <- Sen20_aborto %>%
  mutate(Provincia = case_when(
         Provincia == "TIERRA DEL FUEGO" ~ "T.del.Fuego",
         Provincia == "FORMOSA" ~ "Formosa",
         Provincia == "SANTIAGO DEL ESTERO" ~ "S.del.Estero",
         Provincia == "CORRIENTES" ~ "Corrientes",
         Provincia == "SAN JUAN" ~ "San.Juan",
         Provincia == "SAN LUIS" ~ "San.Luis",
         Provincia == "C.A.B.A." ~ "C.A.B.A.",
         Provincia == "RIO NEGRO" ~ "Río.Negro",
         Provincia == "JUJUY" ~ "Jujuy",
         Provincia == "CHACO" ~ "Chaco",
         Provincia == "MISIONES" ~ "Misiones",
         Provincia == "LA RIOJA" ~ "La.Rioja",
         Provincia == "CÓRDOBA" ~ "Córdoba",
         Provincia == "MENDOZA" ~ "Mendoza",
         Provincia == "LA PAMPA" ~ "La.Pampa",
         Provincia == "CHUBUT" ~ "Chubut",
         Provincia == "SALTA" ~ "Salta",
         Provincia == "CATAMARCA" ~ "Catamarca",
         Provincia == "TUCUMÁN" ~ "Tucumán",
         Provincia == "SANTA FE" ~ "Santa.Fe",
         Provincia == "ENTRE RÍOS" ~ "Entre.Ríos",
         Provincia == "BUENOS AIRES" ~ "Buenos.Aires",
         Provincia == "NEUQUÉN" ~ "Neuquén",
         Provincia == "SANTA CRUZ" ~ "Santa.Cruz"))

## 3.- Se regresa a factor la clase de variable
Sen20_aborto$Provincia <- as.factor(Sen20_aborto$Provincia)

# Se guarda la base que se usa para hacer los plots
write.csv(Sen20_aborto, "Sen20_aborto.csv")

3.31. Plot Sen 2020

# Cargamos la base para el plot
Sen20_aborto <- read.csv("Sen20_aborto.csv")
# Se debe cargar "argentina_grid2"

# Establecemos orden de niveles para el plot
Sen20_aborto$Voto <- factor(as.character(Sen20_aborto$Voto), levels=c("ABSTENCION", "AFIRMATIVO", "AUSENTE", "NEGATIVO"))

3.32. Graficamos.

Sen20_aborto_plot <- ggplot(Sen20_aborto, aes("", Porcentaje, fill = Voto)) +
  geom_col(alpha = 0.8) +
  scale_fill_manual(values = c("#ebe834", "#58eb34", "#9c9c91", "#eb3a34"))+
  coord_flip() +
  facet_geo(~Provincia, grid = "argentina_grid2") +
  theme_bw()+
  labs(title = "Resultados de la votación del proyecto IVE en Senadores por tipo de voto 2020",
       caption = "Fuente: Senadores Argentina",
       x = "Porcentaje (%)",
       y = NULL)+
  theme(strip.text.x = element_text(size = 8))

Sen20_aborto_plot

4. Resultados de votaciones en Diputadxs 2018 según Género

4.1. Seleccionamos las variables del dataset original, ordenamos alfabéticamente y creamos una columna nueva para asignar nro de id a cada legislador.

resultados_dip_2018_sg <- votaciones_dip_2018 %>% 
  select(Diputado, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO') %>% 
  rename(Diputade = Diputado) %>% 
  arrange(Diputade) %>% 
  mutate(id = row_number())

4.2. Importamos el dataset que contiene la variable Género de Chequeado.com

resultados_dip_2018_cg <- read_excel("dip_genero_2018_chequeado.xlsx")

resultados_dip_2018_cg = resultados_dip_2018_cg[-257,] # Sacamos al Presidente de la Cámara

resultados_dip_2018_cg <- resultados_dip_2018_cg %>%
  dplyr::rename(Diputade = Diputado) %>%
  select(Diputade, Género) %>% 
  arrange(Diputade) %>% 
  mutate(id = row_number())

4.3.Chequeamos las primeras y últimas observaciones de ambos datasets para corroborar que coincidan

head(resultados_dip_2018_sg)
##                             Diputade       Voto id
## 1 Abdala De Matarazzo,  Norma Amanda   NEGATIVO  1
## 2                Acerenza., Samantha AFIRMATIVO  2
## 3                      Aicega,  Juan   NEGATIVO  3
## 4         Allende,  Walberto Enrique   NEGATIVO  4
## 5             Alonso,  Laura Valeria AFIRMATIVO  5
## 6       Alume Sbodio,  Karim Augusto   NEGATIVO  6
head(resultados_dip_2018_cg)
## # A tibble: 6 x 3
##   Diputade                          Género    id
##   <chr>                             <chr>  <int>
## 1 ABDALA DE MATARAZZO, Norma Amanda F          1
## 2 ACERENZA, Samanta María Celeste   F          2
## 3 AICEGA, Juan                      M          3
## 4 ALLENDE, Walberto Enrique         M          4
## 5 ALONSO, Laura Valeria             F          5
## 6 ALUME SBODIO, Karim Augusto       M          6
tail(resultados_dip_2018_sg)
##                          Diputade       Voto  id
## 251                  Yasky,  Hugo AFIRMATIVO 251
## 252           Yedlin,  Pablo Raúl AFIRMATIVO 252
## 253     Zamarbide,  Federico Raùl   NEGATIVO 253
## 254              Zamora,  Claudia   NEGATIVO 254
## 255        Ziliotto., Sergio Raúl AFIRMATIVO 255
## 256 Zottos,  Miguel Andrés Costas   NEGATIVO 256
tail(resultados_dip_2018_cg)
## # A tibble: 6 x 3
##   Diputade                     Género    id
##   <chr>                        <chr>  <int>
## 1 YASKY, Hugo                  M        251
## 2 YEDLIN, Pablo Raúl           M        252
## 3 ZAMARBIDE, Federico Raúl     M        253
## 4 ZAMORA, Claudia              F        254
## 5 ZILIOTTO, Sergio Raúl        M        255
## 6 ZOTTOS, Miguel Andrés Costas M        256

4.4. Unimos los dos datasets en base al id.

votaciones_dip_2018_g <- left_join(resultados_dip_2018_sg, resultados_dip_2018_cg, by = "id") #Unimos los dos resultados_dip_2018_cg

anyNA(votaciones_dip_2018_g) #Corroboramos que  no haya valores faltantes 
## [1] FALSE
votaciones_dip_2018_g <- votaciones_dip_2018_g %>% 
  select(Diputade.x, Voto, Género) %>% #Seleccionamos variables
  rename(Diputade = Diputade.x) %>% # Renombramos
  mutate(Género = case_when(Género == "M" ~ "MASCULINO",
                                                    Género == "F" ~ "FEMENINO")) #Modificamos la columna Género para que figure como "Femenino" y "Masculino" en lugar de "F" y "M"

#Chequeamos cómo quedó el dataset
view(votaciones_dip_2018_g)

4.5. Creamos una tabla que refleje la composición por género de la Cámara de Diputadxs en 2018

dip_2018_genero <- votaciones_dip_2018_g %>%
  filter(Género =="FEMENINO"| Género=="MASCULINO") %>% 
  dplyr::count(Género) %>% 
  rename(Cantidad = n, Genero = Género) %>%
  arrange(desc(Cantidad)) %>% 
  mutate(Porcentaje = paste0(round(Cantidad/sum(Cantidad) * 100, 2), "%")) %>% 
  transform(Genero = reorder(Genero, -Cantidad))

dip_2018_genero
##      Genero Cantidad Porcentaje
## 1 MASCULINO      156     60.94%
## 2  FEMENINO      100     39.06%

4.6. Creamos el gráfico de barras con los valores de la composición por género de la Cámara de Diputadxs en 2018.

dip_2018_genero_plot <- ggplot(dip_2018_genero,
  aes(x = Genero, y = Cantidad, p = Porcentaje, fill = Genero, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Genero))) +
  geom_bar(stat = 'identity') +
  scale_y_continuous(breaks = seq(0, 180, by = 25)) +
  scale_fill_manual(values = c("#32a89b", "#9D2ADB")) +
  labs(title = "Composición Cámara de Diputados por Género 2018", 
       caption = "Fuente: Cámara de Diputados de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal() +
  geom_text(aes(x = Genero, y = Cantidad, label= Cantidad), position=position_dodge(width=0.9), vjust=-1.50)

4.7. Armamos un plotly con el gráfico anterior.

dip_2018_genero_plotly <- ggplotly(dip_2018_genero_plot, tooltip = "text") %>% layout(title = list(text = paste0('Composición Cámara de Diputados por Género','<br>', '<sup>', 'Año 2018', '</sup>')), 
                       legend = list(orientation = "v", x = 1, y = 1),
                       annotations = list(x = 1.20, 
                                          y = -0.12, 
                                          text = "Fuente: Cámara de Diputados de la Nación", 
                                          showarrow = F, 
                                          xref='paper', yref='paper', 
                                          xanchor='right', yanchor='auto', 
                                          xshift=0, yshift=0,
                                          font=list(size=12, color="black")))


dip_2018_genero_plotly

4.9.Creamos una nueva tabla que agrupe Género por tipo de Voto.

resultados_dip_2018_genero_voto <- votaciones_dip_2018_g %>% 
  dplyr::count(Género, Voto) %>% 
  rename(Cantidad = n) %>% 
  group_by(Género) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

resultados_dip_2018_genero_voto
##      Género       Voto Cantidad Porcentaje
## 1  FEMENINO ABSTENCION        1       1.00
## 2  FEMENINO AFIRMATIVO       57      57.00
## 3  FEMENINO   NEGATIVO       42      42.00
## 4 MASCULINO AFIRMATIVO       72      46.15
## 5 MASCULINO    AUSENTE        1       0.64
## 6 MASCULINO   NEGATIVO       83      53.21
#Establecemos un orden de niveles para que se reflejen en el gráfico
resultados_dip_2018_genero_voto$Voto <- factor(as.character(resultados_dip_2018_genero_voto$Voto), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

4.10. Creamos un gráfico con la proporción de Voto por Género.

resultados_dip_2018_genero_voto_plot <- ggplot(resultados_dip_2018_genero_voto,
            aes(x = Género, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position ="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Diputados por Género", 
       caption = "Fuente: Cámara de Diputados de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal()

4.11. Creamos el plotly.

resultados_dip_2018_genero_voto_plotly <- ggplotly(resultados_dip_2018_genero_voto_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Diputados por Género','<br>', '<sup>', 'Año 2018', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.20, 
                                                              y = -0.12,
                                                              text = "Fuente: Cámara de Diputados de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))

resultados_dip_2018_genero_voto_plotly

4. Resultados de votaciones en Senadorxs 2018 según Género

4.12. Seleccionamos las variables del dataset original, ordenamos alfabéticamente y creamos una columna nueva para asignar nro de id a cada legislador.

resultados_sen_2018_sg <- votaciones_sen_2018 %>% 
  select(Diputado, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO') %>% 
  rename(Diputade = Diputado) %>% 
  arrange(Diputade) %>% 
  mutate(id = row_number())

4.13. Importamos el dataset que contiene la variable Género de Chequeado.com

resultados_sen_2018_cg <- read_excel("sen_genero_2018_chequeado.xlsx")

resultados_sen_2018_cg <- resultados_sen_2018_cg %>%
  dplyr::rename(Género = GÉNERO) %>% 
  select(APELLIDO, NOMBRE, Género) %>% 
  arrange(APELLIDO) %>% 
  mutate(id = row_number())

4.14.Chequeamos las primeras y últimas observaciones de ambos datasets para corroborar que coincidan

head(resultados_sen_2018_sg)
##                     Diputade       Voto id
## 1  Aguilar., Eduardo Alberto AFIRMATIVO  1
## 2      Almirón., Ana Claudia AFIRMATIVO  2
## 3          Alperovich., José   NEGATIVO  3
## 4 Basualdo., Roberto Gustavo   NEGATIVO  4
## 5         Blas., Inés Imelda   NEGATIVO  5
## 6    Boyadjian., Miriam Ruth   NEGATIVO  6
head(resultados_sen_2018_cg)
## # A tibble: 6 x 4
##   APELLIDO   NOMBRE          Género    id
##   <chr>      <chr>           <chr>  <int>
## 1 AGUILAR    EDUARDO ALBERTO M          1
## 2 ALMIRÓN    ANA CLAUDIA     F          2
## 3 ALPEROVICH JOSÉ JORGE      M          3
## 4 BASUALDO   ROBERTO GUSTAVO M          4
## 5 BLAS       INÉS IMELDA     F          5
## 6 BOYADJIAN  MIRIAM RUTH     F          6
tail(resultados_sen_2018_sg)
##                       Diputade       Voto id
## 67 Solari Quintana,  Magdalena   NEGATIVO 67
## 68         Tapia,  María Bélen   NEGATIVO 68
## 69          Uñac,  José Rubén.   NEGATIVO 69
## 70    Urtubey., Rodolfo Julio\t   NEGATIVO 70
## 71              Varela., Marta   NEGATIVO 71
## 72   Verasay., Pamela Fernanda AFIRMATIVO 72
tail(resultados_sen_2018_cg)
## # A tibble: 6 x 4
##   APELLIDO         NOMBRE          Género    id
##   <chr>            <chr>           <chr>  <int>
## 1 SOLARI  QUINTANA MAGDALENA       F         67
## 2 TAPIA            MARÍA BELÉN     F         68
## 3 UÑAC             JOSÉ RUBÉN      M         69
## 4 URTUBEY          RODOLFO JULIO   M         70
## 5 VARELA           MARTA           F         71
## 6 VERASAY          PAMELA FERNANDA F         72

4.15. Unimos los dos datasets en base al id.

votaciones_sen_2018_g <- left_join(resultados_sen_2018_sg, resultados_sen_2018_cg, by = "id") #Unimos los dos resultados_dip_2018_cg

anyNA(votaciones_sen_2018_g) #Corroboramos que  no haya valores faltantes 
## [1] FALSE
votaciones_sen_2018_g <- votaciones_sen_2018_g %>% 
  select(Diputade, Voto, Género) %>% #Seleccionamos variables
  mutate(Género = case_when(Género == "M" ~ "MASCULINO",
                                                    Género == "F" ~ "FEMENINO")) #Modificamos la columna Género para que figure como "Femenino" y "Masculino" en lugar de "F" y "M"

#Chequeamos cómo quedó el dataset
view(votaciones_sen_2018_g)

4.16. Creamos una tabla que refleje la composición por género de la Cámara de Diputadxs en 2018

sen_2018_genero <- votaciones_sen_2018_g %>%
  filter(Género =="FEMENINO"| Género=="MASCULINO") %>% 
  dplyr::count(Género) %>% 
  rename(Cantidad = n, Genero = Género) %>%
  arrange(desc(Cantidad)) %>% 
  mutate(Porcentaje = paste0(round(Cantidad/sum(Cantidad) * 100, 2), "%")) %>% 
  transform(Genero = reorder(Genero, -Cantidad))

sen_2018_genero
##      Genero Cantidad Porcentaje
## 1 MASCULINO       42     58.33%
## 2  FEMENINO       30     41.67%

4.17. Creamos el gráfico de barras con los valores de la composición por género de la Cámara de Diputadxs en 2018.

sen_2018_genero_plot <- ggplot(sen_2018_genero,
  aes(x = Genero, y = Cantidad, p = Porcentaje, fill = Genero, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Genero))) +
  geom_bar(stat = 'identity') +
  scale_y_continuous(breaks = seq(0, 180, by = 25)) +
  scale_fill_manual(values = c("#32a89b", "#9D2ADB")) +
  labs(title = "Composición Cámara de Senadores por Género 2018", 
       caption = "Fuente: Cámara de Senadores de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal() +
  geom_text(aes(x = Genero, y = Cantidad, label= Cantidad), position=position_dodge(width=0.9), vjust=-1.50)

4.18. Armamos un plotly con el gráfico anterior.

sen_2018_genero_plotly <- ggplotly(sen_2018_genero_plot, tooltip = "text") %>% layout(title = list(text = paste0('Composición Cámara de Senadores por Género','<br>', '<sup>', 'Año 2018', '</sup>')), 
                       legend = list(orientation = "v", x = 1, y = 1),
                       annotations = list(x = 1.20, 
                                          y = -0.12, 
                                          text = "Fuente: Cámara de Diputados de la Nación", 
                                          showarrow = F, 
                                          xref='paper', yref='paper', 
                                          xanchor='right', yanchor='auto', 
                                          xshift=0, yshift=0,
                                          font=list(size=12, color="black")))


sen_2018_genero_plotly

4.19.Creamos una nueva tabla que agrupe Género por tipo de Voto.

resultados_sen_2018_genero_voto <- votaciones_sen_2018_g %>% 
  dplyr::count(Género, Voto) %>% 
  rename(Cantidad = n) %>% 
  group_by(Género) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

resultados_sen_2018_genero_voto
##      Género       Voto Cantidad Porcentaje
## 1  FEMENINO ABSTENCION        1       3.33
## 2  FEMENINO AFIRMATIVO       14      46.67
## 3  FEMENINO    AUSENTE        1       3.33
## 4  FEMENINO   NEGATIVO       14      46.67
## 5 MASCULINO ABSTENCION        1       2.38
## 6 MASCULINO AFIRMATIVO       17      40.48
## 7 MASCULINO   NEGATIVO       24      57.14
#Establecemos un orden de niveles para que se reflejen en el gráfico
resultados_sen_2018_genero_voto$Voto <- factor(as.character(resultados_sen_2018_genero_voto$Voto), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

4.20. Creamos un gráfico con la proporción de Voto por Género.

resultados_sen_2018_genero_voto_plot <- ggplot(resultados_sen_2018_genero_voto,
            aes(x = Género, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position ="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Senadores por Género", 
       subtitle = "Año 2018",
       caption = "Fuente: Cámara de Senadores de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal()

4.21. Creamos el plotly.

resultados_sen_2018_genero_voto_plotly <- ggplotly(resultados_sen_2018_genero_voto_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Senadores por Género','<br>', '<sup>', 'Año 2018', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.20, 
                                                              y = -0.12,
                                                              text = "Fuente: Cámara de Senadores de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))

resultados_sen_2018_genero_voto_plotly

4. Resultados de votaciones en Diputadxs 2020 según Género

4.22. Seleccionamos las variables del dataset original, ordenamos alfabéticamente y creamos una columna nueva para asignar nro de id a cada legislador.

resultados_dip_2020_sg <- votaciones_dip_2020 %>% 
  select(Diputado, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO') %>% 
  rename(Diputade = Diputado) %>% 
  arrange(Diputade) %>% 
  mutate(id = row_number())

4.23. Importamos el dataset que contiene la variable Género de Economía Femini(s)ta.

resultados_dip_2020_cg <- read_excel("dip_genero_2020_ecofeminista.xlsx")

resultados_dip_2020_cg = resultados_dip_2020_cg[-153,] # Sacamos al Presidente de la Cámara

resultados_dip_2020_cg <- resultados_dip_2020_cg %>%
  dplyr::rename(Diputade = Nombre, Género = Genero) %>%
  select(Diputade, Género) %>% 
  arrange(Diputade) %>% 
  mutate(id = row_number())

4.24.Chequeamos las primeras y últimas observaciones de ambos datasets para corroborar que coincidan

head(resultados_dip_2020_sg)
##                             Diputade       Voto id
## 1 Abdala De Matarazzo,  Norma Amanda   NEGATIVO  1
## 2            Aguirre.,  Hilda Clelia AFIRMATIVO  2
## 3                      Aicega,  Juan   NEGATIVO  3
## 4             Alderete,  Juan Carlos AFIRMATIVO  4
## 5         Allende,  Walberto Enrique   NEGATIVO  5
## 6       Alume Sbodio,  Karim Augusto   NEGATIVO  6
head(resultados_dip_2020_cg)
## # A tibble: 6 x 3
##   Diputade                          Género    id
##   <chr>                             <chr>  <int>
## 1 Abdala De Matarazzo, Norma Amanda Mujer      1
## 2 Aguirre, Hilda Clelia             Mujer      2
## 3 Aicega, Juan                      Varón      3
## 4 Alderete, Juan Carlos             Varón      4
## 5 Allende, Walberto Enrique         Varón      5
## 6 Alume Sbodio, Karim Augusto       Varón      6
tail(resultados_dip_2020_sg)
##                          Diputade       Voto  id
## 251                  Yasky,  Hugo AFIRMATIVO 251
## 252           Yedlin,  Pablo Raúl AFIRMATIVO 252
## 253      Yutrovic,  Ines Carolina AFIRMATIVO 253
## 254     Zamarbide,  Federico Raùl   NEGATIVO 254
## 255 Zottos,  Miguel Andrés Costas   NEGATIVO 255
## 256               Zuvic,  Mariana ABSTENCION 256
tail(resultados_dip_2020_cg)
## # A tibble: 6 x 3
##   Diputade                 Género    id
##   <chr>                    <chr>  <int>
## 1 Yasky, Hugo              Varón    251
## 2 Yedlin, Pablo Raúl       Varón    252
## 3 Yutrovic, Carolina       Mujer    253
## 4 Zamarbide, Federico Raúl Varón    254
## 5 Zottos, Andrés           Varón    255
## 6 Zuvic, Mariana           Mujer    256

4.25. Unimos los dos datasets en base al id.

votaciones_dip_2020_g <- left_join(resultados_dip_2020_sg, resultados_dip_2020_cg, by = "id") #Unimos los dos resultados_dip_2018_cg

anyNA(votaciones_dip_2020_g) #Corroboramos que  no haya valores faltantes 
## [1] FALSE
votaciones_dip_2020_g <- votaciones_dip_2020_g %>% 
  select(Diputade.x, Voto, Género) %>% #Seleccionamos variables
  rename(Diputade = Diputade.x) %>% # Renombramos
  mutate(Género = case_when(Género == "Varón" ~ "MASCULINO",
                                                    Género == "Mujer" ~ "FEMENINO")) #Modificamos la columna Género para que figure como "Femenino" y "Masculino" en lugar de "Mujer" y "Varón"

#Chequeamos cómo quedó el dataset
view(votaciones_dip_2020_g)

4.26. Creamos una tabla que refleje la composición por género de la Cámara de Diputadxs en 2018

dip_2020_genero <- votaciones_dip_2020_g %>%
  filter(Género =="FEMENINO"| Género=="MASCULINO") %>% 
  dplyr::count(Género) %>% 
  rename(Cantidad = n, Genero = Género) %>%
  arrange(desc(Cantidad)) %>% 
  mutate(Porcentaje = paste0(round(Cantidad/sum(Cantidad) * 100, 2), "%")) %>% 
  transform(Genero = reorder(Genero, -Cantidad))

dip_2020_genero
##      Genero Cantidad Porcentaje
## 1 MASCULINO      149      58.2%
## 2  FEMENINO      107      41.8%

4.27. Creamos el gráfico de barras con los valores de la composición por género de la Cámara de Diputadxs en 2018.

dip_2020_genero_plot <- ggplot(dip_2020_genero,
  aes(x = Genero, y = Cantidad, p = Porcentaje, fill = Genero, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Genero))) +
  geom_bar(stat = 'identity') +
  scale_y_continuous(breaks = seq(0, 180, by = 25)) +
  scale_fill_manual(values = c("#32a89b", "#9D2ADB")) +
  labs(title = "Composición Cámara de Diputados por Género 2020", 
       caption = "Fuente: Cámara de Diputados de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal() +
  geom_text(aes(x = Genero, y = Cantidad, label= Cantidad), position=position_dodge(width=0.9), vjust=-1.50)

4.28. Armamos un plotly con el gráfico anterior.

dip_2020_genero_plotly <- ggplotly(dip_2020_genero_plot, tooltip = "text") %>% layout(title = list(text = paste0('Composición Cámara de Diputados por Género','<br>', '<sup>', 'Año 2020', '</sup>')), 
                       legend = list(orientation = "v", x = 1, y = 1),
                       annotations = list(x = 1.20, 
                                          y = -0.12, 
                                          text = "Fuente: Cámara de Diputados de la Nación", 
                                          showarrow = F, 
                                          xref='paper', yref='paper', 
                                          xanchor='right', yanchor='auto', 
                                          xshift=0, yshift=0,
                                          font=list(size=12, color="black")))


dip_2020_genero_plotly

4.29.Creamos una nueva tabla que agrupe Género por tipo de Voto.

resultados_dip_2020_genero_voto <- votaciones_dip_2020_g %>% 
  dplyr::count(Género, Voto) %>% 
  rename(Cantidad = n) %>% 
  group_by(Género) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

resultados_dip_2020_genero_voto
##      Género       Voto Cantidad Porcentaje
## 1  FEMENINO ABSTENCION        3       2.80
## 2  FEMENINO AFIRMATIVO       59      55.14
## 3  FEMENINO   NEGATIVO       45      42.06
## 4 MASCULINO ABSTENCION        3       2.01
## 5 MASCULINO AFIRMATIVO       72      48.32
## 6 MASCULINO    AUSENTE        2       1.34
## 7 MASCULINO   NEGATIVO       72      48.32
#Establecemos un orden de niveles para que se reflejen en el gráfico
resultados_dip_2020_genero_voto$Voto <- factor(as.character(resultados_dip_2020_genero_voto$Voto), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

4.30. Creamos un gráfico con la proporción de Voto por Género.

resultados_dip_2020_genero_voto_plot <- ggplot(resultados_dip_2020_genero_voto,
            aes(x = Género, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position ="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Diputados por Género",
       subtitle = "Año 2020",
       caption = "Fuente: Cámara de Diputados de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal()

4.31. Creamos el plotly.

resultados_dip_2020_genero_voto_plotly <- ggplotly(resultados_dip_2020_genero_voto_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Diputados por Género','<br>', '<sup>', 'Año 2020', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.20, 
                                                              y = -0.12,
                                                              text = "Fuente: Cámara de Diputados de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))

resultados_dip_2020_genero_voto_plotly

4. Resultados de votaciones en Senadorxs 2020 según Género

4.32. Seleccionamos las variables del dataset original, ordenamos alfabéticamente y creamos una columna nueva para asignar nro de id a cada legislador.

resultados_sen_2020_sg <- votaciones_sen_2020 %>% 
  select(Diputado, Voto) %>% 
  filter (Voto=='ABSTENCION'|Voto=='AFIRMATIVO'|Voto=='AUSENTE'|Voto=='NEGATIVO') %>% 
  rename(Diputade = Diputado) %>% 
  arrange(Diputade) %>% 
  mutate(id = row_number())

4.33. Importamos el dataset que contiene la variable Género de Economía Femini(s)ta.

resultados_sen_2020_cg <- read_excel("sen_genero_2020_ecofeminista.xlsx")


resultados_sen_2020_cg <- resultados_sen_2020_cg %>%
  dplyr::rename(Género = Genero) %>% 
  select(Nombre, Género) %>% 
  arrange(Nombre) %>% 
  mutate(id = row_number())

4.34.Chequeamos las primeras y últimas observaciones de ambos datasets para corroborar que coincidan

head(resultados_sen_2020_sg)
##                           Diputade       Voto id
## 1            Almirón., Ana Claudia AFIRMATIVO  1
## 2                Alperovich., José    AUSENTE  2
## 3       Basualdo., Roberto Gustavo   NEGATIVO  3
## 4            Blanco,  Pablo Daniel   NEGATIVO  4
## 5               Blas., Inés Imelda   NEGATIVO  5
## 6 Braillard Poccard., Néstor Pedro   NEGATIVO  6
head(resultados_sen_2020_cg)
## # A tibble: 6 x 3
##   Nombre                          Género    id
##   <chr>                           <chr>  <int>
## 1 Almirón, Ana Claudia            Mujer      1
## 2 Alperovich, José Jorge          Varón      2
## 3 Basualdo, Roberto Gustavo       Varón      3
## 4 Blanco, Pablo                   Varón      4
## 5 Blas, Inés Imelda               Mujer      5
## 6 Braillard Poccard, Néstor Pedro Varón      6
tail(resultados_sen_2020_sg)
##                     Diputade       Voto id
## 67       Tapia,  María Bélen   NEGATIVO 67
## 68        Uñac,  José Rubén.   NEGATIVO 68
## 69    Vega., María Del Valle    AUSENTE 69
## 70 Verasay., Pamela Fernanda AFIRMATIVO 70
## 71     Weretilneck,  Alberto AFIRMATIVO 71
## 72       Zimmermann,  Víctor   NEGATIVO 72
tail(resultados_sen_2020_cg)
## # A tibble: 6 x 3
##   Nombre                       Género    id
##   <chr>                        <chr>  <int>
## 1 Tapia, Maria Belen           Mujer     67
## 2 Uñac, Jose Ruben             Varón     68
## 3 VEGA, MARIA CLARA DEL VALLE  Mujer     69
## 4 Verasay, Pamela Fernanda     Mujer     70
## 5 Weretilneck, Alberto Edgardo Varón     71
## 6 Zimmerman, Victor            Varón     72

4.35. Unimos los dos datasets en base al id.

votaciones_sen_2020_g <- left_join(resultados_sen_2020_sg, resultados_sen_2020_cg, by = "id") #Unimos los dos resultados_dip_2018_cg

anyNA(votaciones_sen_2020_g) #Corroboramos que no haya valores faltantes 
## [1] FALSE
votaciones_sen_2020_g <- votaciones_sen_2020_g %>% 
  select(Diputade, Voto, Género) %>% #Seleccionamos variables
  mutate(Género = case_when(Género == "Varón" ~ "MASCULINO",
                                                    Género == "Mujer" ~ "FEMENINO")) #Modificamos la columna Género para que figure como "Femenino" y "Masculino" en lugar de "Varón" y "Mujer"

#Chequeamos cómo quedó el dataset
view(votaciones_sen_2020_g)

4.36. Creamos una tabla que refleje la composición por género de la Cámara de Senadorxs en 2020

sen_2020_genero <- votaciones_sen_2020_g %>%
  filter(Género =="FEMENINO"| Género=="MASCULINO") %>% 
  dplyr::count(Género) %>% 
  rename(Cantidad = n, Genero = Género) %>%
  arrange(desc(Cantidad)) %>% 
  mutate(Porcentaje = paste0(round(Cantidad/sum(Cantidad) * 100, 2), "%")) %>% 
  transform(Genero = reorder(Genero, -Cantidad))

sen_2020_genero
##      Genero Cantidad Porcentaje
## 1 MASCULINO       44     61.11%
## 2  FEMENINO       28     38.89%

4.37. Creamos el gráfico de barras con los valores de la composición por género de la Cámara de Diputadxs en 2018.

sen_2020_genero_plot <- ggplot(sen_2020_genero,
  aes(x = Genero, y = Cantidad, p = Porcentaje, fill = Genero, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Genero))) +
  geom_bar(stat = 'identity') +
  scale_y_continuous(breaks = seq(0, 180, by = 25)) +
  scale_fill_manual(values = c("#32a89b", "#9D2ADB")) +
  labs(title = "Composición Cámara de Senadores por Género 2020", 
       caption = "Fuente: Cámara de Senadores de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal() +
  geom_text(aes(x = Genero, y = Cantidad, label= Cantidad), position=position_dodge(width=0.9), vjust=-1.50)

4.38. Armamos un plotly con el gráfico anterior.

sen_2020_genero_plotly <- ggplotly(sen_2020_genero_plot, tooltip = "text") %>% layout(title = list(text = paste0('Composición Cámara de Senadores por Género','<br>', '<sup>', 'Año 2020', '</sup>')), 
                       legend = list(orientation = "v", x = 1, y = 1),
                       annotations = list(x = 1.20, 
                                          y = -0.12, 
                                          text = "Fuente: Cámara de Diputados de la Nación", 
                                          showarrow = F, 
                                          xref='paper', yref='paper', 
                                          xanchor='right', yanchor='auto', 
                                          xshift=0, yshift=0,
                                          font=list(size=12, color="black")))


sen_2020_genero_plotly

4.39.Creamos una nueva tabla que agrupe Género por tipo de Voto.

resultados_sen_2020_genero_voto <- votaciones_sen_2020_g %>% 
  dplyr::count(Género, Voto) %>% 
  rename(Cantidad = n) %>% 
  group_by(Género) %>% 
  mutate(Porcentaje = (round(Cantidad/sum(Cantidad) * 100, 2))) %>% 
  transform(Voto = reorder(Voto, -Cantidad))

resultados_sen_2020_genero_voto
##      Género       Voto Cantidad Porcentaje
## 1  FEMENINO AFIRMATIVO       19      67.86
## 2  FEMENINO    AUSENTE        1       3.57
## 3  FEMENINO   NEGATIVO        8      28.57
## 4 MASCULINO ABSTENCION        1       2.27
## 5 MASCULINO AFIRMATIVO       19      43.18
## 6 MASCULINO    AUSENTE        3       6.82
## 7 MASCULINO   NEGATIVO       21      47.73
#Establecemos un orden de niveles para que se reflejen en el gráfico
resultados_sen_2020_genero_voto$Voto <- factor(as.character(resultados_sen_2020_genero_voto$Voto), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

4.40. Creamos un gráfico con la proporción de Voto por Género.

resultados_sen_2020_genero_voto_plot <- ggplot(resultados_sen_2020_genero_voto,
            aes(x = Género, y = Cantidad, p = Porcentaje, fill = Voto, text = paste0("Cantidad: ", Cantidad,"\n", "Porcentaje: ", Porcentaje,"%", "\n", "Voto: ", Voto))) +
  geom_bar(position ="fill", stat = 'identity') +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(values = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) +
  labs(title = "Resultados de votación del proyecto IVE en Senadores por Género", 
       subtitle = "Año 2020",
       caption = "Fuente: Cámara de Senadores de la Nación",
       x = "Género", 
       y = "Cantidad") +
  theme_minimal()

4.41. Creamos el plotly.

resultados_sen_2020_genero_voto_plotly <- ggplotly(resultados_sen_2020_genero_voto_plot, tooltip = "text") %>% layout(title = list(text = paste0('Resultados de votación del proyecto IVE en Senadores por Género','<br>', '<sup>', 'Año 2020', '</sup>')),
                                           legend = list(orientation = "v", x = 1, y = 1), 
                                           annotations = list(x = 1.20, 
                                                              y = -0.12,
                                                              text = "Fuente: Cámara de Senadores de la Nación",
                                                              showarrow = F,
                                                              xref='paper', yref='paper',
                                                              xanchor='right', yanchor='auto',
                                                              xshift=0, yshift=0,
                                                              font=list(size=12, color="black")))

resultados_sen_2020_genero_voto_plotly

5. Resultados de votaciones en Diputadxs 2018 según Rango de Edad

5.1. Importamos el dataset y hacemos un paneo general.

Listado_camaras <- read.csv("C:/Documents and Settings/emili/Documents/EMILIA/R/EANT - SOCIAL DATA ANALYTICS/EANT - GRUPO IVE/Listado_camaras.csv", sep = ",", encoding = "UTF-8")

View(Listado_camaras) # visión entera del dataset 

names(Listado_camaras)[names(Listado_camaras) == "Orientación"] <- "Orientación"

summary(Listado_camaras) # resumen del dataset
##   diputado_id      Diputado          Provincia           Partido         
##  Min.   :  1.0   Length:658         Length:658         Length:658        
##  1st Qu.:165.2   Class :character   Class :character   Class :character  
##  Median :329.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :329.5                                                           
##  3rd Qu.:493.8                                                           
##  Max.   :658.0                                                           
##                                                                          
##  Orientación            VOTO                EDAD          camara         
##  Length:658         Length:658         Min.   :26.00   Length:658        
##  Class :character   Class :character   1st Qu.:44.00   Class :character  
##  Mode  :character   Mode  :character   Median :53.00   Mode  :character  
##                                        Mean   :52.99                     
##                                        3rd Qu.:62.00                     
##                                        Max.   :90.00                     
##                                        NA's   :37                        
##       año       RANGO_DE_EDAD         Genero         
##  Min.   :2018   Length:658         Length:658        
##  1st Qu.:2018   Class :character   Class :character  
##  Median :2019   Mode  :character   Mode  :character  
##  Mean   :2019                                        
##  3rd Qu.:2020                                        
##  Max.   :2020                                        
## 
colnames(Listado_camaras) # vemos nombres de columnas
##  [1] "diputado_id"   "Diputado"      "Provincia"     "Partido"      
##  [5] "Orientación"   "VOTO"          "EDAD"          "camara"       
##  [9] "año"           "RANGO_DE_EDAD" "Genero"
unique(Listado_camaras$EDAD) # revisamos los valores únicos de edad
##  [1] 61 56 34 44 54 46 48 41 39 26 72 42 43 50 40 53 35 51 70 49 52 36 73 67 65
## [26] 57 47 58 64 59 33 68 62 69 NA 66 60 37 31 55 63 38 30 75 74 45 71 88 76 82
## [51] 90 77 78 29 28 80 32

5.2. Creamos un nuevo dataset por medio de un recorte.

diputados2018 <- Listado_camaras[1:257, ] #Creamos un nuevo dataset, eligiendo los datos que precisamos del original
diputados2018 <- diputados2018[-257, ] # eliminamos al Presidente de la Cámara

View(diputados2018) # visión entera del nuevo dataset

summary(diputados2018) # resumen dataset
##   diputado_id       Diputado          Provincia           Partido         
##  Min.   :  1.00   Length:256         Length:256         Length:256        
##  1st Qu.: 64.75   Class :character   Class :character   Class :character  
##  Median :128.50   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :128.50                                                           
##  3rd Qu.:192.25                                                           
##  Max.   :256.00                                                           
##                                                                           
##  Orientación            VOTO                EDAD          camara         
##  Length:256         Length:256         Min.   :26.00   Length:256        
##  Class :character   Class :character   1st Qu.:42.00   Class :character  
##  Mode  :character   Mode  :character   Median :52.00   Mode  :character  
##                                        Mean   :50.86                     
##                                        3rd Qu.:60.00                     
##                                        Max.   :75.00                     
##                                        NA's   :35                        
##       año       RANGO_DE_EDAD         Genero         
##  Min.   :2018   Length:256         Length:256        
##  1st Qu.:2018   Class :character   Class :character  
##  Median :2018   Mode  :character   Mode  :character  
##  Mean   :2018                                        
##  3rd Qu.:2018                                        
##  Max.   :2018                                        
## 
colnames(diputados2018) # vemos nombres de columnas
##  [1] "diputado_id"   "Diputado"      "Provincia"     "Partido"      
##  [5] "Orientación"   "VOTO"          "EDAD"          "camara"       
##  [9] "año"           "RANGO_DE_EDAD" "Genero"
unique(diputados2018$EDAD) # vemos los valores únicos de la columna EDAD
##  [1] 61 56 34 44 54 46 48 41 39 26 72 42 43 50 40 53 35 51 70 49 52 36 73 67 65
## [26] 57 47 58 64 59 33 68 62 69 NA 66 60 37 31 55 63 38 30 75 74 45 71

5.3. Con la función “group by” agrupamos por rango de edad, también por voto y contamos la frecuencia por rango de edad. Además agregamos una variable que calcule porcentaje de tipos de voto en relación a cada rango. Las asignaremos a dos datasets que usaremos en los gráficos.

torta_dip_2018 <- diputados2018 %>% 
  group_by(RANGO_DE_EDAD) %>% 
  dplyr::count() %>% 
  ungroup() %>%
  mutate(perc = round(n/sum(n) *100, 2))

torta_dip_2018
## # A tibble: 6 x 3
##   RANGO_DE_EDAD     n  perc
##   <chr>         <int> <dbl>
## 1 25-35            18  7.03
## 2 36-45            60 23.4 
## 3 46-55            62 24.2 
## 4 56-65            58 22.7 
## 5 66-75            23  8.98
## 6 <NA>             35 13.7
torta_dip_2018$RANGO_DE_EDAD[6] <- "S/D" # Reasignamos categoría de NAs

unique(torta_dip_2018$RANGO_DE_EDAD)
## [1] "25-35" "36-45" "46-55" "56-65" "66-75" "S/D"
barra_dip_2018 <- diputados2018 %>% 
  group_by(VOTO) %>% 
  dplyr::count(RANGO_DE_EDAD) %>% 
  mutate(perc1 = round(n/sum(n) *100, 2))

barra_dip_2018
## # A tibble: 14 x 4
## # Groups:   VOTO [4]
##    VOTO       RANGO_DE_EDAD     n  perc1
##    <chr>      <chr>         <int>  <dbl>
##  1 ABSTENCION 25-35             1 100   
##  2 AFIRMATIVO 25-35            10   7.75
##  3 AFIRMATIVO 36-45            33  25.6 
##  4 AFIRMATIVO 46-55            29  22.5 
##  5 AFIRMATIVO 56-65            27  20.9 
##  6 AFIRMATIVO 66-75            11   8.53
##  7 AFIRMATIVO <NA>             19  14.7 
##  8 AUSENTE    56-65             1 100   
##  9 NEGATIVO   25-35             7   5.6 
## 10 NEGATIVO   36-45            27  21.6 
## 11 NEGATIVO   46-55            33  26.4 
## 12 NEGATIVO   56-65            30  24   
## 13 NEGATIVO   66-75            12   9.6 
## 14 NEGATIVO   <NA>             16  12.8
barra_dip_2018$RANGO_DE_EDAD[7] <- "S/D"
barra_dip_2018$RANGO_DE_EDAD[14] <- "S/D" # Reasignamos categoría a NAs

unique(barra_dip_2018$RANGO_DE_EDAD)
## [1] "25-35" "36-45" "46-55" "56-65" "66-75" "S/D"

5.4. Reordenamos los niveles de torta_dip_2018 y barra_dip_2018 para que queden impactados en los gráficos.

torta_dip_2018$RANGO_DE_EDAD <- factor(as.character(torta_dip_2018$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65", "66-75", "S/D"))

barra_dip_2018$VOTO <- factor(as.character(barra_dip_2018$VOTO), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

barra_dip_2018$RANGO_DE_EDAD <- factor(as.character(barra_dip_2018$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65", "66-75", "S/D"))

5.5. Armamos dos gráficos interactivos con la función “hchart”, para eso debemos tener cargadas las librerías “highcharter” y “gganimate”.

# Grafico que representa el porcentaje de la votación y de representación en la cámara según rango de edad

dip_2018_con_torta <- hchart(
  barra_dip_2018, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = perc1, p=perc1, group=VOTO), #asigno el color a las variables del Voto   
  color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) %>%
  hc_add_series(torta_dip_2018, "pie", hcaes(name = RANGO_DE_EDAD, y = perc), name = "Participacion sobre el total de miembros") %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    ),
    pie = list(
      colorByPoint = TRUE, center = c('80%', '30%') # asigno la ubicacion de la torta dentro de los ejes 
      ,
      size = 180,showInLegend = FALSE
    )) %>%

  hc_title(text = "Votación del proyecto IVE en la Cámara de Diputadxs Año 2018") %>%
  hc_add_theme(hc_theme_economist()) %>%  # Agrego titulo dentro de los ejes x e y.
    hc_yAxis(
    title = list(text = "Porcentaje de Voto"),
    labels = list(format = "{value}%"), max = 100  )  %>%
    hc_xAxis(
    title = list(text = "Rango de edad"))  %>%
  hc_subtitle(text = "Porcentaje de la votación y de representación en la cámara según rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Diputados de la Nación",
    style = list(fontSize = "12px")
  )

dip_2018_con_torta
#Cantidad de votos por rango de edad

dip_edad_2018_CANTIDAD <- hchart(
  barra_dip_2018, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = n, p=perc1, group=VOTO), color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")
 ) %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    )) %>%

  hc_title(text = "Votación del proyecto IVE en la Cámara de Diputadxs Año 2018") %>%
  hc_add_theme(hc_theme_economist()) %>%
    hc_yAxis(
    title = list(text = "Cantidad de Votos"),
    labels = list(format = "{value}"), max = 50)  %>%
    hc_xAxis(
    title = list(text = "Rango de edad")) %>%
  hc_subtitle(text = "Cantidad de votos por rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Diputados de la Nación",
    style = list(fontSize = "12px")
  )

dip_edad_2018_CANTIDAD

5. Resultados de votaciones en Senadorxs 2018 según Rango de Edad

5.6. Creamos un nuevo dataset por medio de un recorte.

senadores2018 <- Listado_camaras[258:329, ] # Creamos un nuevo dataset, eligiendo los datos que precisamos del original

View(senadores2018) # visión entera del nuevo dataset

summary(senadores2018) # resumen dataset
##   diputado_id      Diputado          Provincia           Partido         
##  Min.   :258.0   Length:72          Length:72          Length:72         
##  1st Qu.:275.8   Class :character   Class :character   Class :character  
##  Median :293.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :293.5                                                           
##  3rd Qu.:311.2                                                           
##  Max.   :329.0                                                           
##  Orientación            VOTO                EDAD          camara         
##  Length:72          Length:72          Min.   :31.00   Length:72         
##  Class :character   Class :character   1st Qu.:49.00   Class :character  
##  Mode  :character   Mode  :character   Median :57.50   Mode  :character  
##                                        Mean   :57.26                     
##                                        3rd Qu.:64.00                     
##                                        Max.   :88.00                     
##       año       RANGO_DE_EDAD         Genero         
##  Min.   :2018   Length:72          Length:72         
##  1st Qu.:2018   Class :character   Class :character  
##  Median :2018   Mode  :character   Mode  :character  
##  Mean   :2018                                        
##  3rd Qu.:2018                                        
##  Max.   :2018
colnames(senadores2018) # vemos nombre de columnas
##  [1] "diputado_id"   "Diputado"      "Provincia"     "Partido"      
##  [5] "Orientación"   "VOTO"          "EDAD"          "camara"       
##  [9] "año"           "RANGO_DE_EDAD" "Genero"
unique(senadores2018$EDAD) # vemos los valores únicos de edad
##  [1] 47 34 63 61 59 52 64 49 68 50 31 57 46 62 66 54 65 44 70 45 72 53 55 56 88
## [26] 48 58 67 75 51 60 76 71 43 82 38

5.7. Con la función “group by” agrupo por rango de edad, también agrupamos por voto y contamos la frecuencia por rango de edad. además agregamos una variable que calcule porcentaje de tipos de voto en relación a cada rango. Las asignaremos a dos datasets que usaremos en los gráficos.

torta_sen_2018 <- senadores2018 %>% 
  group_by(RANGO_DE_EDAD) %>% 
  dplyr::count() %>% 
  ungroup() %>%
  mutate(perc = round(n/sum(n) *100, 2))

torta_sen_2018
## # A tibble: 7 x 3
##   RANGO_DE_EDAD     n  perc
##   <chr>         <int> <dbl>
## 1 25-35             3  4.17
## 2 36-45             5  6.94
## 3 46-55            23 31.9 
## 4 56-65            26 36.1 
## 5 66-75            12 16.7 
## 6 76-85             2  2.78
## 7 86-96             1  1.39
barra_sen_2018 <- senadores2018 %>% 
  group_by(VOTO) %>% 
  dplyr::count(RANGO_DE_EDAD) %>% 
  mutate(perc1 = round(n/sum(n) *100, 2))

barra_sen_2018
## # A tibble: 15 x 4
## # Groups:   VOTO [4]
##    VOTO       RANGO_DE_EDAD     n  perc1
##    <chr>      <chr>         <int>  <dbl>
##  1 ABSTENCION 46-55             1  50   
##  2 ABSTENCION 56-65             1  50   
##  3 AFIRMATIVO 25-35             2   6.45
##  4 AFIRMATIVO 36-45             2   6.45
##  5 AFIRMATIVO 46-55             9  29.0 
##  6 AFIRMATIVO 56-65            11  35.5 
##  7 AFIRMATIVO 66-75             6  19.4 
##  8 AFIRMATIVO 76-85             1   3.23
##  9 AUSENTE    25-35             1 100   
## 10 NEGATIVO   36-45             3   7.89
## 11 NEGATIVO   46-55            13  34.2 
## 12 NEGATIVO   56-65            14  36.8 
## 13 NEGATIVO   66-75             6  15.8 
## 14 NEGATIVO   76-85             1   2.63
## 15 NEGATIVO   86-96             1   2.63
unique(barra_sen_2018$RANGO_DE_EDAD)
## [1] "46-55" "56-65" "25-35" "36-45" "66-75" "76-85" "86-96"

5.8. Reordenamos los niveles de barra_sen_2018 y torta_sen_2018 para que queden impactados en los gráficos.

barra_sen_2018$VOTO <- factor(as.character(barra_sen_2018$VOTO), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

barra_sen_2018$RANGO_DE_EDAD <- factor(as.character(barra_sen_2018$RANGO_DE_EDAD), levels=c("46-55", "56-65", "25-35", "36-45", "66-75", "76-85", "86-96"))

torta_sen_2018$RANGO_DE_EDAD <- factor(as.character(torta_sen_2018$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65","66-75", "76-85", "86-96"))

5.9. Realizamos dos graficos interactivos con la funcion “hchart”, para eso debemos tener cargadas las libreria “highcharter” y “gganimate”.

# Gráfico que representa el porcentaje de la votación y de representación en la cámara según rango de edad

sen_edad_2018_con_torta <- hchart(
  barra_sen_2018, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = perc1, p=perc1, group=VOTO), # asignamos el color a las variables del Voto   
  color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) %>%
  hc_add_series(torta_sen_2018, "pie", hcaes(name = RANGO_DE_EDAD, y = perc), name = "Participacion sobre el total de miembros") %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
     Voto = list(
      colorByPoint = TRUE
    ),
    pie = list(
      colorByPoint = TRUE, center = c('80%', '30%') # asignamos la ubicación de la torta dentro de los ejes 
      ,
      size = 180,showInLegend = FALSE
    )) %>%
  hc_title(text = "Votación del proyecto IVE en la Cámara de Senadorxs Año 2018") %>%
  hc_add_theme(hc_theme_economist()) %>%  # Agregamos título dentro de los ejes x e y.
    hc_yAxis(
    title = list(text = "Porcentaje de Voto"),
    labels = list(format = "{value}%"), max = 100)  %>%
    hc_xAxis(
    title = list(text = "Rango de edad")) %>%
  hc_subtitle(text = "Porcentaje de la votación y de representación en la cámara según rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Senadores de la Nación",
    style = list(fontSize = "12px")
  )

sen_edad_2018_con_torta
# Cantidad de votos por rango de edad

sen_edad_2018_CANTIDAD <- hchart(
  barra_sen_2018, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = n, p=perc1, group=VOTO), color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")
 ) %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    )) %>%
hc_title(text = "Votación del proyecto IVE en la Cámara de Senadorxs Año 2018") %>%
  hc_add_theme(hc_theme_economist()) %>%
    hc_yAxis(
    title = list(text = "Cantidad de Votos"),
    labels = list(format = "{value}"), max = 20  )  %>%
    hc_xAxis(
    title = list(text = "Rango de edad")) %>%
  hc_subtitle(text = "Cantidad de votos por rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Senadores de la Nación",
    style = list(fontSize = "12px")
  )

sen_edad_2018_CANTIDAD

5. Resultados de votaciones en Diputadxs 2020 según Rango de Edad

5.10. Creamos un nuevo dataset por medio de un recorte.

diputados2020 <- Listado_camaras[402:657, ] # Creamos un nuevo dataset, eligiendo los datos que precisamos del original

View(diputados2020) # visión entera del nuevo dataset

summary(diputados2020) # resumen dataset
##   diputado_id      Diputado          Provincia           Partido         
##  Min.   :402.0   Length:256         Length:256         Length:256        
##  1st Qu.:465.8   Class :character   Class :character   Class :character  
##  Median :529.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :529.5                                                           
##  3rd Qu.:593.2                                                           
##  Max.   :657.0                                                           
##  Orientación            VOTO                EDAD          camara         
##  Length:256         Length:256         Min.   :28.00   Length:256        
##  Class :character   Class :character   1st Qu.:43.00   Class :character  
##  Mode  :character   Mode  :character   Median :54.00   Mode  :character  
##                                        Mean   :52.36                     
##                                        3rd Qu.:61.00                     
##                                        Max.   :80.00                     
##       año       RANGO_DE_EDAD         Genero         
##  Min.   :2020   Length:256         Length:256        
##  1st Qu.:2020   Class :character   Class :character  
##  Median :2020   Mode  :character   Mode  :character  
##  Mean   :2020                                        
##  3rd Qu.:2020                                        
##  Max.   :2020
colnames(diputados2020) # vemos nombres de columnas
##  [1] "diputado_id"   "Diputado"      "Provincia"     "Partido"      
##  [5] "Orientación"   "VOTO"          "EDAD"          "camara"       
##  [9] "año"           "RANGO_DE_EDAD" "Genero"
unique(diputados2020$EDAD) # vemos los valores únicos de EDAD
##  [1] 72 60 57 68 65 39 51 40 62 43 49 66 45 69 78 54 67 48 42 50 63 58 76 56 41
## [26] 35 38 55 59 64 46 53 47 73 61 30 70 71 77 44 37 29 33 52 31 28 80 34 32 36
## [51] 74

5.11. Con la función “group by” agrupo por rango de edad, también agrupamos por voto y contamos la frecuencia por rango de edad. además agregamos una variable que calcule porcentaje de tipos de voto en relación a cada rango. Las asignaremos a dos datasets que usaremos en los gráficos.

torta_dip_2020 <- diputados2020 %>% 
  group_by(RANGO_DE_EDAD) %>% 
  dplyr::count() %>% 
  ungroup() %>%
  mutate(perc = round(n/sum(n) *100, 2))

torta_dip_2020
## # A tibble: 6 x 3
##   RANGO_DE_EDAD     n  perc
##   <chr>         <int> <dbl>
## 1 25-35            16  6.25
## 2 36-45            71 27.7 
## 3 46-55            62 24.2 
## 4 56-65            67 26.2 
## 5 66-75            35 13.7 
## 6 76-85             5  1.95
barra_dip_2020 <- diputados2020 %>% 
  group_by(VOTO) %>% 
  dplyr::count(RANGO_DE_EDAD) %>% 
  mutate(perc1 = round(n/sum(n) *100, 2))

barra_dip_2020
## # A tibble: 19 x 4
## # Groups:   VOTO [4]
##    VOTO       RANGO_DE_EDAD     n perc1
##    <chr>      <chr>         <int> <dbl>
##  1 ABSTENCION 25-35             1 16.7 
##  2 ABSTENCION 36-45             1 16.7 
##  3 ABSTENCION 46-55             2 33.3 
##  4 ABSTENCION 56-65             1 16.7 
##  5 ABSTENCION 76-85             1 16.7 
##  6 AFIRMATIVO 25-35            11  8.4 
##  7 AFIRMATIVO 36-45            45 34.4 
##  8 AFIRMATIVO 46-55            24 18.3 
##  9 AFIRMATIVO 56-65            35 26.7 
## 10 AFIRMATIVO 66-75            14 10.7 
## 11 AFIRMATIVO 76-85             2  1.53
## 12 AUSENTE    36-45             1 50   
## 13 AUSENTE    66-75             1 50   
## 14 NEGATIVO   25-35             4  3.42
## 15 NEGATIVO   36-45            24 20.5 
## 16 NEGATIVO   46-55            36 30.8 
## 17 NEGATIVO   56-65            31 26.5 
## 18 NEGATIVO   66-75            20 17.1 
## 19 NEGATIVO   76-85             2  1.71
unique(barra_dip_2020$RANGO_DE_EDAD)
## [1] "25-35" "36-45" "46-55" "56-65" "76-85" "66-75"

5.12. Reordenamos los niveles de barra_dip_2020 y torta_dip_2020 para que queden impactados en los gráficos.

barra_dip_2020$VOTO <- factor(as.character(barra_dip_2020$VOTO), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

barra_dip_2020$RANGO_DE_EDAD <- factor(as.character(barra_dip_2020$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65", "76-85", "66-75"))

torta_dip_2020$RANGO_DE_EDAD <- factor(as.character(torta_dip_2020$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65","66-75", "76-85", "86-96"))

5.13. Realizamos dos graficos interactivos con la funcion “hchart”, para eso tenemos que cargar la libreria “highcharter” y “gganimate”

# Grafico que representa el porcentaje de la votación y de representación en la cámara según rango de edad

dip_2020_con_torta <- hchart(
  barra_dip_2020, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = perc1, p=perc1, group=VOTO), #asigno el color a las variables del Voto   
  color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) %>%
  hc_add_series(torta_dip_2020, "pie", hcaes(name = RANGO_DE_EDAD, y = perc), name = "Participacion sobre el total de miembros") %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    ),
    pie = list(
      colorByPoint = TRUE, center = c('80%', '30%') # asigno la ubicacion de la torta dentro de los ejes 
      ,
      size = 180,showInLegend = FALSE
    )) %>%

  hc_title(text = "Votación del proyecto IVE en la Cámara de Diputadxs Año 2020") %>%
  hc_add_theme(hc_theme_economist()) %>%  # Agrego titulo dentro de los ejes x e y.
    hc_yAxis(
    title = list(text = "Porcentaje de Voto"),
    labels = list(format = "{value}%"), max = 100  )  %>%
    hc_xAxis(
    title = list(text = "Rango de edad"))  %>%
  hc_subtitle(text = "Porcentaje de la votación y de representación en la cámara según rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Diputados de la Nación",
    style = list(fontSize = "12px")
  )

dip_2020_con_torta
#Cantidad de votos por rango de edad

dip_edad_2020_CANTIDAD <- hchart(
  barra_dip_2020, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = n, p=perc1, group=VOTO), color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")
 ) %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    )) %>%

  hc_title(text = "Votación del proyecto IVE en la Cámara de Diputadxs Año 2020") %>%
  hc_add_theme(hc_theme_economist()) %>%
    hc_yAxis(
    title = list(text = "Cantidad de Votos"),
    labels = list(format = "{value}"), max = 50  )  %>%
    hc_xAxis(
    title = list(text = "Rango de edad")) %>%
  hc_subtitle(text = "Cantidad de votos por rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Diputados de la Nación",
    style = list(fontSize = "12px")
  )

dip_edad_2020_CANTIDAD

5. Resultados de votaciones en Senadorxs 2020 según Rango de Edad

5.14. Creamos un nuevo dataset por medio de un recorte.

senadores2020 <- Listado_camaras[330:401, ] # Creamos un nuevo dataset, eligiendo los datos que preciso del original.

View(senadores2020) # visión entera del nuevo dataset

rownames(senadores2020) <- NULL # Reiniciamos el nro de filas

unique(senadores2020$VOTO)
## [1] "AFIRMATIVO" "AUSENTE"    "NEGATIVO"   NA
# Reasignamos el voto de Snopek a ABSTENCION 
senadores2020$VOTO[63]= "ABSTENCION"

unique(senadores2020$VOTO) # Chequeamos
## [1] "AFIRMATIVO" "AUSENTE"    "NEGATIVO"   "ABSTENCION"
summary(senadores2020) # Resumen dataset
##   diputado_id      Diputado          Provincia           Partido         
##  Min.   :330.0   Length:72          Length:72          Length:72         
##  1st Qu.:347.8   Class :character   Class :character   Class :character  
##  Median :365.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :365.5                                                           
##  3rd Qu.:383.2                                                           
##  Max.   :401.0                                                           
##  Orientación            VOTO                EDAD          camara         
##  Length:72          Length:72          Min.   :33.00   Length:72         
##  Class :character   Class :character   1st Qu.:50.00   Class :character  
##  Mode  :character   Mode  :character   Median :58.00   Mode  :character  
##                                        Mean   :57.49                     
##                                        3rd Qu.:65.00                     
##                                        Max.   :90.00                     
##       año       RANGO_DE_EDAD         Genero         
##  Min.   :2020   Length:72          Length:72         
##  1st Qu.:2020   Class :character   Class :character  
##  Median :2020   Mode  :character   Mode  :character  
##  Mean   :2020                                        
##  3rd Qu.:2020                                        
##  Max.   :2020
colnames(senadores2020) # vemos los nombres de las columnas
##  [1] "diputado_id"   "Diputado"      "Provincia"     "Partido"      
##  [5] "Orientación"   "VOTO"          "EDAD"          "camara"       
##  [9] "año"           "RANGO_DE_EDAD" "Genero"
unique(senadores2020$EDAD) # Vemos los valores únicos de la columna EDAD
##  [1] 36 65 63 67 61 66 51 70 33 49 69 48 45 68 40 56 47 59 57 46 50 55 64 58 90
## [26] 54 60 77 53 62 78 39 73 71 52

5.15. Con la función “group by” agrupo por rango de edad, también agrupamos por voto y contamos la frecuencia por rango de edad. además agregamos una variable que calcule porcentaje de tipos de voto en relación a cada rango. Las asignaremos a dos datasets que usaremos en los gráficos.

torta_sen_2020 <- senadores2020 %>% 
  group_by(RANGO_DE_EDAD) %>% 
  dplyr::count() %>% 
  ungroup() %>%
  mutate(perc = round(n/sum(n) *100, 2))

torta_sen_2020
## # A tibble: 7 x 3
##   RANGO_DE_EDAD     n  perc
##   <chr>         <int> <dbl>
## 1 25-35             1  1.39
## 2 36-45             7  9.72
## 3 46-55            21 29.2 
## 4 56-65            28 38.9 
## 5 66-75            12 16.7 
## 6 76-85             2  2.78
## 7 86-96             1  1.39
barra_sen_2020 <- senadores2020 %>% 
  group_by(VOTO) %>% 
  dplyr::count(RANGO_DE_EDAD) %>% 
  mutate(perc1 = round(n/sum(n) *100, 2))

barra_sen_2020
## # A tibble: 14 x 4
## # Groups:   VOTO [4]
##    VOTO       RANGO_DE_EDAD     n  perc1
##    <chr>      <chr>         <int>  <dbl>
##  1 ABSTENCION 36-45             1 100   
##  2 AFIRMATIVO 25-35             1   2.63
##  3 AFIRMATIVO 36-45             6  15.8 
##  4 AFIRMATIVO 46-55            12  31.6 
##  5 AFIRMATIVO 56-65            10  26.3 
##  6 AFIRMATIVO 66-75             8  21.0 
##  7 AFIRMATIVO 76-85             1   2.63
##  8 AUSENTE    46-55             2  50   
##  9 AUSENTE    56-65             1  25   
## 10 AUSENTE    86-96             1  25   
## 11 NEGATIVO   46-55             7  24.1 
## 12 NEGATIVO   56-65            17  58.6 
## 13 NEGATIVO   66-75             4  13.8 
## 14 NEGATIVO   76-85             1   3.45

5.16. Reordenamos los niveles de barra_sen_2020 y torta_sen_2020 para que queden impactados en los gráficos.

barra_sen_2020$VOTO <- factor(as.character(barra_sen_2020$VOTO), levels=c("NEGATIVO", "AFIRMATIVO", "ABSTENCION", "AUSENTE"))

barra_sen_2020$RANGO_DE_EDAD <- factor(as.character(barra_sen_2020$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65","66-75", "76-85", "86-96"))

torta_sen_2020$RANGO_DE_EDAD <- factor(as.character(torta_sen_2020$RANGO_DE_EDAD), levels=c("25-35", "36-45", "46-55", "56-65","66-75", "76-85", "86-96"))

5.17. Realizamos dos gráficos interactivos con la funcion “hchart”.

# Grafico que representa el porcentaje de la votación y de representación en la cámara según rango de edad

sen_edad_2020_con_torta <- hchart(
  barra_sen_2020, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = perc1, p=perc1, group=VOTO), #asigno el color a las variables del Voto   
  color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")) %>%
  hc_add_series(torta_sen_2020, "pie", hcaes(name = RANGO_DE_EDAD, y = perc), name = "Participacion sobre el total de miembros") %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    ),
    pie = list(
      colorByPoint = TRUE, center = c('80%', '30%') # asigno la ubicacion de la torta dentro de los ejes 
      ,
      size = 180,showInLegend = FALSE
    )) %>%

  hc_title(text = "Votación del proyecto IVE en la Cámara de Senadorxs Año 2020") %>%
  hc_add_theme(hc_theme_economist()) %>%  # Agrego titulo dentro de los ejes x e y.
    hc_yAxis(
    title = list(text = "Porcentaje de Voto"),
    labels = list(format = "{value}%"), max = 100  )  %>%
    hc_xAxis(
    title = list(text = "Rango de edad"))  %>%
  hc_subtitle(text = "Porcentaje de la votación y de representación en la cámara según rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Senadores de la Nación",
    style = list(fontSize = "12px")
  )

sen_edad_2020_con_torta
#Cantidad de votos por rango de edad

sen_edad_2020_CANTIDAD <- hchart(
  barra_sen_2020, 
  "bar",
  hcaes(x = RANGO_DE_EDAD,"VOTO", y = n, p=perc1, group=VOTO), color = c("#eb3a34", "#58eb34", "#ebe834", "#9c9c91")
 ) %>% 
        hc_add_theme(hc_theme_ffx()) %>%
   hc_plotOptions(
    
    Voto = list(
      colorByPoint = TRUE
    )) %>%

  hc_title(text = "Votación del proyecto IVE en la Cámara de Senadorxs Año 2020") %>%
  hc_add_theme(hc_theme_economist()) %>%
    hc_yAxis(
    title = list(text = "Cantidad de Votos"),
    labels = list(format = "{value}"), max = 20 )  %>%
    hc_xAxis(
    title = list(text = "Rango de edad")) %>%
  hc_subtitle(text = "Cantidad de votos por rango de edad") %>%
  hc_credits(
    enabled = TRUE, text = "Fuente: Cámara de Senadores de la Nación",
    style = list(fontSize = "12px")
  )

sen_edad_2020_CANTIDAD

Conclusiones

  1. En cuanto a la orientación política, las votaciones de ambos años para las dos cámaras reflejan tendencias mayoritarias a favor del proyecto en el Kirchnerismo y partidos aliados mientras que en fuerzas como Cambiemos, la mayor parte de sus legisladorxs han votado en contra del proyecto.

  2. De acuerdo con los gráficos de provincia, en ambas cámaras (diputados y senadores) y años (2018 y 2020) se observa una tendencia de las provincias del norte a rechazar el proyecto de ley, mientras tanto las del sur, a aprobarlo. En cuanto a las provincias del centro, estas tienden a mantener sus posiciones.

  3. En relación a la votación de acuerdo al género, se observa, en primer lugar, una mayoría de hombres en la composición de ambas cámaras y en ambos períodos legislativos. Los resultados de las votaciones muestran un incremento de adhesión de las mujeres legisladoras en la comparación de períodos, en el caso de Diputadxs, el incremento es de 7 puntos porcentuales, mientras que en Senadorxs es de aproximadamente 18 puntos. En el caso de los legisladores hombres, se sostiene prácticamente igual la adhesión en ambos períodos. Aquí se puede observar un argumento más (entre otros) a favor de la ley de paridad en los cargos legislativos y de decisión.

  4. Por último, se puede observar una fuerte postura negativa hacia la IVE en el grupo de edad dominante – 55 a 66 - en cuanto a proporción de los miembros de la Cámara de Senadorxs teniendo el 58 % del total de los votos negativos en el año 2020. No obstante, en la Cámara baja, si bien dentro del grupo hay una tendencia a rechazar la ley, es relativamente diminutiva y no del todo influyente en el resultado final. En cuanto las votaciones de 2018 y 2020, se puede observar en ambas cámaras el dominio del voto afirmativo del grupo joven, así como también, una tendencia hacia la aprobación en el rango 65 a 76 años en tanto a lxs senadorxs, decisión que no se refleja dentro de lxs diputadxs donde en ambos años predomina la negación a la IVE.