Einfügen Tabelle statistische Werte
This commit is contained in:
@ -1,14 +1,13 @@
|
|||||||
|
import os, re, sys, unicodedata, subprocess
|
||||||
|
from pathlib import Path
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import plotly.graph_objs as go
|
import plotly.graph_objs as go
|
||||||
import os
|
from collections import defaultdict
|
||||||
import re
|
|
||||||
import unicodedata
|
|
||||||
import subprocess
|
|
||||||
from config_lms import plotly_theme, export_fig_visual, export_fig_png
|
from config_lms import plotly_theme, export_fig_visual, export_fig_png
|
||||||
import sys
|
from ci_template.plotly_template import (
|
||||||
sys.path.append("/Users/jochen_hanisch-johannsen/Documents/scripte/Jochen-Hanisch/CI/ci_template")
|
get_standard_layout, get_colors, set_theme,
|
||||||
from plotly_template import get_standard_layout, get_colors, set_theme
|
plot_table_from_dict, plot_table_from_dataframe
|
||||||
from pathlib import Path
|
)
|
||||||
set_theme(plotly_theme)
|
set_theme(plotly_theme)
|
||||||
|
|
||||||
# --- Hilfsfunktionen für Export und Slugify ---
|
# --- Hilfsfunktionen für Export und Slugify ---
|
||||||
@ -44,8 +43,6 @@ def export_figure(fig, name, export_flag_html, export_flag_png):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("❌ Fehler beim PNG-Export:", str(e))
|
print("❌ Fehler beim PNG-Export:", str(e))
|
||||||
|
|
||||||
# PNG-Exportpfad definieren
|
|
||||||
png_export_path = Path(__file__).parent.parent.parent / "Allgemein beruflich" / "Research" / "Charité - Universitätsmedizin Berlin" / "Dissertation" / "Abbildungen"
|
|
||||||
|
|
||||||
# Ursprüngliche Datentabelle (bitte bei Bedarf anpassen)
|
# Ursprüngliche Datentabelle (bitte bei Bedarf anpassen)
|
||||||
df = pd.DataFrame({
|
df = pd.DataFrame({
|
||||||
@ -80,9 +77,11 @@ df = pd.DataFrame({
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# Zentrale Definition der Themenbereiche
|
||||||
|
THEMENBEREICHE = ["medizinisch", "rettungsdienstlich", "bezugswissenschaftlich", "Einführung/Prüfung"]
|
||||||
|
|
||||||
# --- Automatische Berechnung Themenbereichsanteile pro Kurs ---
|
# --- Automatische Berechnung Themenbereichsanteile pro Kurs ---
|
||||||
# Ausschließlich systematische APrV-Zuordnung aus lms-verteilung.xlsx und zuordnung_praezise verwenden
|
# Ausschließlich systematische APrV-Zuordnung aus lms-verteilung.xlsx und zuordnung_praezise verwenden
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
zuordnung_praezise = {
|
zuordnung_praezise = {
|
||||||
# Medizinisch
|
# Medizinisch
|
||||||
@ -162,10 +161,6 @@ apr_kompetenz_df = pd.DataFrame({
|
|||||||
"Anteil (%)": [24, 15, 11, 50]
|
"Anteil (%)": [24, 15, 11, 50]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Umbenennung "unbekannt" → "Einführung/Prüfung" für valide Kategorisierung
|
# Umbenennung "unbekannt" → "Einführung/Prüfung" für valide Kategorisierung
|
||||||
df["Themenbereich"] = df["Themenbereich"].replace("unbekannt", "Einführung/Prüfung")
|
df["Themenbereich"] = df["Themenbereich"].replace("unbekannt", "Einführung/Prüfung")
|
||||||
|
|
||||||
@ -196,18 +191,13 @@ gruppe = df.groupby("Themenbereich").agg({
|
|||||||
gruppe.columns = ['Ø Aufgaben', 'SD Aufgaben', 'Anzahl Kurse', 'Ø Dauer', 'SD Dauer']
|
gruppe.columns = ['Ø Aufgaben', 'SD Aufgaben', 'Anzahl Kurse', 'Ø Dauer', 'SD Dauer']
|
||||||
print("\nStatistik nach Themenbereich:\n", gruppe)
|
print("\nStatistik nach Themenbereich:\n", gruppe)
|
||||||
|
|
||||||
|
|
||||||
def plot_boxplots(df):
|
def plot_boxplots(df):
|
||||||
colors = get_colors()
|
colors = get_colors()
|
||||||
# Spezifische Reihenfolge: medizinisch, rettungsdienstlich, bezugswissenschaftlich, Einführung/Prüfung
|
# Spezifische und dokumentierte Reihenfolge der Boxplots
|
||||||
kategorie_order = []
|
kategorie_order = []
|
||||||
for k in ["medizinisch", "rettungsdienstlich", "bezugswissenschaftlich", "Einführung/Prüfung"]:
|
for kategorie in ["medizinisch", "rettungsdienstlich", "bezugswissenschaftlich", "Einführung/Prüfung"]:
|
||||||
if k in df["Themenbereich"].unique():
|
if kategorie in df["Themenbereich"].unique():
|
||||||
kategorie_order.append(k)
|
kategorie_order.append(kategorie)
|
||||||
# Ergänze ggf. andere Kategorien (falls weitere vorkommen)
|
|
||||||
for k in sorted(df["Themenbereich"].unique()):
|
|
||||||
if k not in kategorie_order:
|
|
||||||
kategorie_order.append(k)
|
|
||||||
|
|
||||||
# Aufgaben-Boxplot
|
# Aufgaben-Boxplot
|
||||||
fig1 = go.Figure()
|
fig1 = go.Figure()
|
||||||
@ -247,7 +237,6 @@ def plot_boxplots(df):
|
|||||||
export_figure(fig2, fig2.layout.title.text, export_fig_visual, export_fig_png)
|
export_figure(fig2, fig2.layout.title.text, export_fig_visual, export_fig_png)
|
||||||
fig2.show()
|
fig2.show()
|
||||||
|
|
||||||
|
|
||||||
def plot_aprv_pies():
|
def plot_aprv_pies():
|
||||||
colors = get_colors()
|
colors = get_colors()
|
||||||
|
|
||||||
@ -286,7 +275,6 @@ def plot_aprv_pies():
|
|||||||
export_figure(fig2, fig2.layout.title.text, export_fig_visual, export_fig_png)
|
export_figure(fig2, fig2.layout.title.text, export_fig_visual, export_fig_png)
|
||||||
fig2.show()
|
fig2.show()
|
||||||
|
|
||||||
|
|
||||||
def plot_vergleich_lehrplan_aprv():
|
def plot_vergleich_lehrplan_aprv():
|
||||||
# Gruppierung der Kursdauer nach Themenbereich
|
# Gruppierung der Kursdauer nach Themenbereich
|
||||||
nfsh_theme = df.groupby("Themenbereich")["Dauer [d]"].sum().reset_index()
|
nfsh_theme = df.groupby("Themenbereich")["Dauer [d]"].sum().reset_index()
|
||||||
@ -314,9 +302,6 @@ def plot_vergleich_lehrplan_aprv():
|
|||||||
export_figure(fig, fig.layout.title.text, export_fig_visual, export_fig_png)
|
export_figure(fig, fig.layout.title.text, export_fig_visual, export_fig_png)
|
||||||
fig.show()
|
fig.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def plot_vergleich_kompetenz_aprv():
|
def plot_vergleich_kompetenz_aprv():
|
||||||
# Automatische Zuordnung der Kompetenzbereiche basierend auf CSV-Datei
|
# Automatische Zuordnung der Kompetenzbereiche basierend auf CSV-Datei
|
||||||
kuerzel_df = pd.read_csv(Path(__file__).parent / "APrV-Kuerzel_zu_Kompetenzbereichen.csv")
|
kuerzel_df = pd.read_csv(Path(__file__).parent / "APrV-Kuerzel_zu_Kompetenzbereichen.csv")
|
||||||
@ -373,9 +358,14 @@ def plot_vergleich_kompetenz_aprv():
|
|||||||
fig.show()
|
fig.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- Visualisierungen aufrufen ---
|
# --- Visualisierungen aufrufen ---
|
||||||
# Alle Visualisierungen in sinnvoller Reihenfolge aufrufen
|
# Alle Visualisierungen in sinnvoller Reihenfolge aufrufen
|
||||||
plot_aprv_pies()
|
plot_aprv_pies()
|
||||||
plot_vergleich_lehrplan_aprv()
|
plot_vergleich_lehrplan_aprv()
|
||||||
plot_vergleich_kompetenz_aprv()
|
plot_vergleich_kompetenz_aprv()
|
||||||
plot_boxplots(df)
|
plot_boxplots(df)
|
||||||
|
|
||||||
|
# Tabellen-Visualisierungen nach bisherigen Plots aus ci_template aufrufen
|
||||||
|
plot_table_from_dict(gesamt_stats, "Gesamtstatistik der curricularen Struktur", export_figure, export_fig_visual, export_fig_png)
|
||||||
|
plot_table_from_dataframe(gruppe, "Themenbereich", "Gruppierte Statistik nach Themenbereichen", export_figure, export_fig_visual, export_fig_png)
|
||||||
|
|||||||
Reference in New Issue
Block a user