In [14]:
import pandas as pd
import numpy as np
import plotly.plotly as py
import plotly.graph_objs as go

from sklearn.ensemble import *
from sklearn.cross_validation import train_test_split

eligible_votes = pd.read_csv("https://raw.githubusercontent.com/democratia/political_science/master/Reconstruct-Jura/Stimmberechtigte.csv", sep=";", na_values="...")
eligible_votes['Datum'], eligible_votes['Vorlage'] = eligible_votes['Datum und Vorlage'].str.split(' ', 1).str
kantonsnamen = list(eligible_votes)[3:-3]

eligible_votes['Datum'] = pd.to_datetime(eligible_votes['Datum'], infer_datetime_format=True)
eligible_per_year = eligible_votes.groupby(eligible_votes.Datum.dt.year).median()
eligible_cantons = eligible_per_year[list(eligible_per_year.columns[1:-1])] 
years = eligible_cantons.index.values[11:]
eligible_cantons_mat = eligible_cantons.as_matrix()
eligible_cantons_mat = eligible_cantons_mat[:][11:]

traces = []
for i in range(0, 24):
    traces.append(go.Scatter(
        x=years,
        y=eligible_cantons_mat[:, i],
        mode='lines',
        connectgaps=True,
        name = kantonsnamen[i]
    ))
layout = go.Layout(
        title='Stimmberechtigte pro Kanton',
        xaxis=dict(title='Jahr'),
        yaxis=dict(title='Stimmberechtigte')
    )
fig = go.Figure(data=traces, layout=layout)    
py.iplot(fig, filename='stimmberechtigte')


Out[14]:

In [ ]:


In [ ]: