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

df = pd.read_csv("https://raw.githubusercontent.com/Niederb/political_science/master/gewinner-kantone/alle-volksabstimmungen-resultate.csv", sep=";")#, encoding="ascii")

stimmberechtigte = pd.read_csv("https://raw.githubusercontent.com/Niederb/political_science/master/gewinner-kantone/stimmberechtigte.csv", sep=";")

data = df[list(df.columns[2:-1])] #df.ix[:,[2:5]]#'Schweiz':]

data_mat = data.as_matrix()
schweiz = data_mat[:, 0]
kantone = data_mat[:, 1:]
schweiz_thresholded = schweiz > 50
kantone_thresholded = kantone > 50

korrekt = schweiz_thresholded == kantone_thresholded.T
korrekt = korrekt.T
success_rate = np.mean(korrekt, 0)

radicality = np.mean(np.abs(kantone - 50.0), 0)

stimmberechtigte_2 = np.mean(stimmberechtigte.as_matrix(), 0)
kantonsnamen = list(stimmberechtigte)

In [8]:
trace = go.Scatter(
    x = radicality,
    y = stimmberechtigte_2,
    mode = 'markers',
    text=kantonsnamen,
    marker = dict(
        size = 20,
        color = 'rgba(255, 161, 0, 1.0)',
        line = dict(
            width = 2,
            )
        ),
)
layout = go.Layout(
    hovermode = 'closest',
    title='Radikalität vs Stimmberechtigte',
    xaxis=dict(title='Radikalität'),
    yaxis=dict(title='Anzahl Stimmberechtigte (Durchschnitt)')
    )
data = [trace] 
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='radicality-size')


Out[8]:

In [9]:
trace = go.Scatter(
    x = radicality,
    y = success_rate,
    mode = 'markers',
    text=kantonsnamen,
    marker = dict(
        size = 20,
        color = 'rgba(255, 161, 0, 1.0)',
        line = dict(
            width = 2,
            )
        ),
)
layout = go.Layout(
    hovermode = 'closest',
    title='Radikalität vs Erfolgsrate',
    xaxis=dict(title='Radikalität'),
    yaxis=dict(title='Erfolgsrate in %'),
    )
data = [trace] 
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='radicality-success')


Out[9]:

In [ ]: