如何在多个子批次中插入正态分布?

2024-03-29 06:37:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有多个图,使用子图,我想在上面加上正态分布。我还没有很幸运地找到关于如何为每个子批次执行此操作的信息

到目前为止,我的子地块是这样的: graphs

但我希望它看起来像这样: enter image description here

这是我目前正在使用的代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import numpy as np

def grade_distribution():
    
    # importing datasets
    df=pd.read_csv('assets/class_grades.csv')
    

    
    VALID_GRADES = ['A+','A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'E']
    NUMERIC_GRADES = [4.3,4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7, 1.3, 1.0, 0.7, 0.0]
    grade_point_dict = dict(zip(VALID_GRADES, NUMERIC_GRADES))

    df['ECON101_grade'] = df.replace({'ECON101_grade' : grade_point_dict})['ECON101_grade']
    df['EECS545_grade'] = df.replace({'EECS545_grade' : grade_point_dict})['EECS545_grade']
    df['ENGLISH125_grade'] = df.replace({'ENGLISH125_grade' : grade_point_dict})['ENGLISH125_grade']
    df['MATH217_grade'] = df.replace({'MATH217_grade' : grade_point_dict})['MATH217_grade']
    df['DATASCI306_grade'] = df.replace({'DATASCI306_grade' : grade_point_dict})['DATASCI306_grade']
    df['STATS250_grade'] = df.replace({'STATS250_grade' : grade_point_dict})['STATS250_grade']
    

    
    cols_to_plot = ['ECON101_grade', 'EECS545_grade','ENGLISH125_grade','MATH217_grade', 'DATASCI306_grade', 'STATS250_grade']
    fig, axs = plt.subplots(nrows=3, ncols=2)
    fig.set_size_inches(30, 20)

    
    for col, ax in zip(cols_to_plot, axs.flatten()):
        dftemp = df[col].value_counts()
        ax.bar(dftemp.index, list(dftemp))
        ax.set_title(col)
        ax.tick_params(axis='x', labelrotation=30)

    axs[0, 0].set_title("ECON 101 Grade")
    axs[0, 1].set_title("EECS 545 Grade")
    axs[1, 0].set_title("ENGLISH 125 Grade")
    axs[1, 1].set_title("MATH 217 Grade")
    axs[2, 0].set_title("DATASCI 306 Grade")
    axs[2, 1].set_title("STATS 250 Grade")
    
    plt.show()
    
grade_distribution()


Tags: importdftitleasdictreplacepointgrade