Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save infrahumano/dcc6c56f78b37514a65306caf547592d to your computer and use it in GitHub Desktop.
Save infrahumano/dcc6c56f78b37514a65306caf547592d to your computer and use it in GitHub Desktop.
Gráfico: participacion versus fracción de votos por partido a nivel municipal (senado).
import pandas as pd
import seaborn as sns
sns.set(style='ticks', color_codes=True)
sns.set_palette(sns.color_palette('RdGy', 10)[::-1])
senado = pd.read_csv('datos/senado.csv.gz')
participacion = pd.read_csv('datos/participacion.csv')
partidos =['coalición lista de la decencia (asi,up,mais)',
'partido alianza verde',
'partido cambio radical', 'partido centro democrático',
'partido conservador colombiano',
'partido liberal colombiano',
'partido polo democrático alternativo', 'partido político mira',
'partido social de unidad nacional partido de la u',]
participacion_senado = (participacion[participacion.votacion == 'senado']
[['departamento', 'municipio', 'habilitados', 'votantes']])
fracciones = (senado[senado.circunscripcion.str.contains('nacional')]
.groupby(['departamento', 'municipio', 'partido'])
.candidato_votos.sum()
.reset_index().merge(participacion_senado, on=['departamento', 'municipio'])
.assign(fraccion_habilitados=lambda x: x['votantes']/x['habilitados'],
fraccion_partido=lambda x: x['candidato_votos']/x['votantes']))
ax = sns.lmplot(x='fraccion_habilitados',y='fraccion_partido', col='partido',
data=fracciones[fracciones.partido.isin(partidos)], col_wrap=3,
scatter_kws={'s': 3})
ax.set_xlabels('participacion')
ax.set_ylabels('proporción de votantes por partido\nsobre total de votantes (senado)')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment