Untitled

 avatar
unknown
python
21 days ago
2.2 kB
6
Indexable
import matplotlib.pyplot as plt
import pandas as pd

# Example of metrics to be used (adjust as needed)
metrics = ['DASS_Depression', 'DASS_Angst', 'DASS_Stress', 'Schlaf Test', 
           'Schriftlicher Gedächtnistest1_numeric', 'Schriftlicher Gedächtnistest2_numeric']

# Mean Comparison Before And After Workshop
def plot_mean_comparison(data, metrics):
    mean_before = data[[f"{metric}_before" for metric in metrics]].mean()
    mean_after = data[[f"{metric}_after" for metric in metrics]].mean()
    
    mean_comparison = pd.DataFrame({
        'Metric': metrics,
        'Mean_Before': mean_before.values,
        'Mean_After': mean_after.values
    })
    
    plt.figure(figsize=(10, 6))
    bar_width = 0.35
    indices = range(len(metrics))
    
    plt.bar([x - bar_width / 2 for x in indices], mean_comparison['Mean_Before'], 
            width=bar_width, label='Before', color='blue', alpha=0.7)
    plt.bar([x + bar_width / 2 for x in indices], mean_comparison['Mean_After'], 
            width=bar_width, label='After', color='orange', alpha=0.7)
    
    plt.xticks(indices, metrics, rotation=45, ha='right')
    plt.title('Mean Comparison Before and After Workshop')
    plt.ylabel('Mean Score')
    plt.xlabel('Metrics')
    plt.legend(loc='upper left')
    plt.tight_layout()
    plt.show()

# Mean Comparison Before And After Workshop By Gender
def plot_mean_comparison_by_gender(data, metrics):
    gender_grouped = data.groupby('Geschlecht_before').mean()[[
        f"{metric}_before" for metric in metrics] + [f"{metric}_after" for metric in metrics]]
    
    gender_grouped = gender_grouped.T
    gender_grouped.columns = ['Male', 'Female']
    
    gender_grouped.plot(kind='bar', figsize=(12, 6), color=['blue', 'orange'], alpha=0.7)
    
    plt.title('Mean Comparison Before and After Workshop by Gender')
    plt.ylabel('Mean Score')
    plt.xlabel('Metrics')
    plt.xticks(rotation=45, ha='right')
    plt.legend(title='Gender', loc='upper left')
    plt.tight_layout()
    plt.show()

# Call functions with your data
plot_mean_comparison(merged_data, metrics)
plot_mean_comparison_by_gender(merged_data, metrics)
Leave a Comment