From 23293629a032088baa876776298ed8b4eb0c8dd0 Mon Sep 17 00:00:00 2001 From: Voidheart88 Date: Fri, 31 Oct 2025 15:08:50 +0100 Subject: [PATCH] feat: added auswertung.py - processes the files and produces a plot --- auswertung.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 auswertung.py diff --git a/auswertung.py b/auswertung.py new file mode 100644 index 0000000..325dbc3 --- /dev/null +++ b/auswertung.py @@ -0,0 +1,51 @@ +import pandas as pd +import os +import matplotlib.pyplot as plt +import seaborn as sns + +df = pd.DataFrame() +df["Standort"] = [] + +abkuerzungen = { + "Brandenburgische Technische Universität Cottbus-Senftenberg": "BTU Cottbus-Senftenberg", + "Bergische Universität Wuppertal": "BU Wuppertal", + "Christian-Albrechts-Universität zu Kiel": "CAU Kiel", + "Fachhochschule St. Pölten (AUT)": "FH St. Pölten", + "Universität Magdeburg": "OVGU Magdeburg", +} + +# Einlesen aller Dateien im Ordner /data +files = os.listdir('data') +for fil in files: + data = pd.read_csv('data/' + fil) + data = data[["Standort","Status"]] + data = data.groupby(["Standort"]).count() + data = data.reset_index() + data[fil.strip(".csv")] = data["Status"] + data.drop(columns=["Status"], inplace=True) + + df = pd.merge(df, data, on="Standort", how="outer") + +df["Standort"] = df["Standort"].map(abkuerzungen).fillna(df["Standort"]) + +#df.to_csv('auswertung.csv', index=False) + +# Umwandlung in ein Pivot-Format für eine Heatmap +df_heatmap = df.set_index("Standort").fillna(0) + +# Plot anpassen: quadratische Zellen und Farbskala, die 0 von 1 abhebt +plt.figure(figsize=(0.6 * df_heatmap.shape[1], 0.6 * df_heatmap.shape[0])) +sns.heatmap( + df_heatmap, + cmap="coolwarm", # Farbpalette für besseren Kontrast zwischen 0 und 1 + square=True, # Erzwingt quadratische Zellen + cbar_kws={'label': 'Anzahl der Teilnehmer'} # Beschriftung der Farbleiste +) + +plt.title("Anzahl der Teilnehmer pro Standort und Tagung") +plt.xlabel("Tagung") +plt.ylabel("Standort") +# Achsenticks anpassen +plt.xticks(rotation=45, ha="right", fontsize=6) # Schriftgröße und Ausrichtung der x-Achse anpassen +plt.yticks(fontsize=8) # Schriftgröße der y-Achse anpassen +plt.show() \ No newline at end of file