In [ ]:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
In [ ]:
#read data
df = pd.read_csv('student.csv')
df.head()
Out[ ]:
gender ethnicity parental_education lunch test_preparation_course math_score reading_score writing_score
0 female group B bachelor's degree standard none 72 72 74
1 female group C some college standard completed 69 90 88
2 female group B master's degree standard none 90 95 93
3 male group A associate's degree free/reduced none 47 57 44
4 male group C some college standard none 76 78 75
In [ ]:
#create a small sample
df_sample = df.iloc[0:200, :]
len(df_sample)
Out[ ]:
200
In [ ]:
# check the math score distrubution across df_sample
sns.catplot(data= df_sample, x='gender', y='math_score', kind= 'swarm',
            hue= 'lunch') # swarm cleans up how the dots look but dont use for larger datasets
plt.show()
No description has been provided for this image
In [ ]:
sns.catplot(data=df_sample, x= 'math_score', y= 'gender', kind = 'swarm',
            hue= 'lunch', order = ['male', 'female'],
            palette= {'standard':'green', 'free/reduced': 'lightgreen'})
plt.show()
No description has been provided for this image
In [ ]:
# violon plot to identify patterns, shows median 50 blox plot
sns.catplot(data= df, x= 'gender', y= 'math_score', kind= 'violin', hue= 'gender',
            palette={'male':'steelblue', 'female':'pink'})
plt.show()
No description has been provided for this image
In [ ]:
sns.catplot(data=df, x= 'gender', y='math_score', kind= 'violin',
            hue= 'lunch')
plt.show()
No description has been provided for this image
In [ ]:
#swarm plot & violin plot together (stacking technique)
sns.catplot(data= df_sample, x= 'gender', y= 'math_score', kind= 'violin', color = 'pink',
            inner=None)
sns.swarmplot(data= df_sample, x= 'gender', y= 'math_score', hue= 'gender',
              palette={'female':'red', 'male':'blue'})
plt.show()
No description has been provided for this image
In [ ]: