Proyecto

Inspirado en lo hecho por DecideChile, SERVEL y Wikipedia, este proyecto busca desarrollar una visualización interactiva de las elecciones a ambas cámaras del Congreso Nacional de Chile, a partir de Python, QGIS, Highcharts e integrando diversas fuentes. Desarrollado por Sebastián RIFFO como un producto de código abierto, los códigos, datos y shapefiles generados se encuentran disponibles en este repositorio en GitHub.

Visualización

La información de cada elección se presenta en tres niveles:

Resultados individuales

Cada ícono representa el número de parlamentarios a elegir en el territorio respectivo. De estar disponibles, se presentan los resultados detallados, pudiendo ser ordenados y filtrados según quienes fueron electos.

Resultados por territorio electoral

Al interactuar con un distrito o circunscripción, se muestra la votación obtenida por las principales coaliciones, y en caso contrario, sus resultados a nivel nacional.

Distribución de escaños

La composición de la cámara en cuestión se expone en un diagrama, cuyos escaños están coloreados por coalición y agrupados por partidos. Estos últimos contienen el listado de sus parlamentarios.

Motivación

En un principio, quería practicar Python y de paso hacer algo interesante. Si bien existen muchísimos cursos y competencias para ello, decidí empezar con un proyecto propio, para así ver que más podría aprender en el camino. En aquel entonces estaba estudiando métodos electorales, por lo que trabajar en una visualización de elecciones me pareció apropiado. Sin embargo, rápidamente caí en cuenta que necesitaría bastante más de lo presupuestado para sacar adelante esta idea.

La extracción, limpieza y estandarización de datos fueron hechas con Beautiful Soup y Pandas, dos librerías estándar de Python. La visualización, que está enfocada en interactuar con el territorio más que con los datos, fue construida en Folium. Esta librería, ideal para quien recién comienza, permite dibujar mapas de manera sencilla, aunque su principal desventaja es que sus funcionalidades son bastante limitadas. Por medio de JavaScript logré modificar algunas, e igualmente HTML/CSS me sirvió para personalizar ciertos elementos. Ya que los resultados se muestran en tablas, TableSorter (Mottie’s fork) resultó ser bastante útil para ordenarlas. Finalmente, Highcharts fue de gran ayuda para construir un diagrama de reparto y así proveer una vision más amplia de una elección.

Si los datos son accessibles desde la Vuelta a la Democracia, los mapas vectoriales suelen estar al día, omitiendo versiones anteriores. Este fue el principal problema para trabajar con las divisiones electorales, pero gracias a que los límites comunales casi no han cambiado durante estos 34 años, pude utilizarlos para levantar todos los distritos y circunscripciones desde 1989 en adelante, por medio de Shapely.

Una vez terminado esto, la extensión natural de este proyecto es incluir las elecciones anteriores a 1989. Elegí partir por 1932-1973 para dar cierta continuidad, e igualmente pues las divisiones electorales no variaron mucho en tal período. Georreferencié sus límites gracias a pyQGIS, lo cual era necesario pues la posterior dictadura cívico-militar cambió drásticamente la división del país, no pudiendo reconstruirlos a partir de la información actual. En el caso de los resultados electorales, la información por candidato no está disponible, por lo que usé la composición de cada legislatura (La Nación, el diario estatal en la época, fue crucial para verificar las militancias partidarias). Eventualmente logré reconstruir y cuadrar los resultados de partidos en algunas elecciones, a partir de diversas fuentes.

Problemas conocidos

En desarrollo

Trabajo Futuro