Untitled
Korrelationsmatrix und PCA der im Wahl-O-Mat vertretenen Parteien.unknown
python
9 months ago
1.4 kB
18
Indexable
import pandas as pd
import seaborn as sb
import matplotlib.pyplot as plt
df = pd.read_excel(
'Wahl-O-Mat Bundestagswahl 2025_Datensatz_v1.01.xlsx',
sheet_name='Datensatz BTW 2025',
usecols=['Partei: Kurzbezeichnung', 'These: Nr.', 'Position: Position'], # Column names
index_col='Partei: Kurzbezeichnung',
converters={'Position: Position': lambda x: {'stimme zu': 1, 'neutral': 0, 'stimme nicht zu': -1}.get(x)},
header=0
)
pivot_df = pd.pivot_table(
df,
index='Partei: Kurzbezeichnung',
columns='These: Nr.',
values='Position: Position',
aggfunc='first'
).drop('Verjüngungsforschung')
fig, ax = plt.subplots(figsize=(11,11))
sb.heatmap(
pivot_df.T.corr(),
annot=True,
cmap='coolwarm',
center=0,
fmt=".1f",
linewidths=.5,
annot_kws={"size": 8},
ax=ax,
)
fig.savefig('heatmap.jpg')
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
data_pcr = PCA(n_components=2).fit_transform(
StandardScaler().fit_transform(
pivot_df.T.corr()
)
)
fig, ax = plt.subplots(figsize=(11,11))
ax.scatter(data_pcr[:,0], data_pcr[:,1], alpha=.5)
for i, party in enumerate(pivot_df.index):
ax.annotate(
party,
(data_pcr[i, 0], data_pcr[i, 1]),
textcoords="offset points",
xytext=(5,2)
)
ax.set_xlabel('PCA dim 1')
ax.set_ylabel('PCA dim 2')
fig.savefig('pca.jpg')Editor is loading...
Leave a Comment