%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
stem_cats = ['Psychology', 'Biology', 'Math and Statistics',
'Physical Sciences', 'Computer Science', 'Engineering']
lib_arts_cats = ['Foreign Languages', 'English',
'Communications and Journalism', 'Art and Performance',
'Social Sciences and History']
other_cats = ['Health Professions', 'Public Administration',
'Education', 'Agriculture','Business', 'Architecture']
women_degrees = pd.read_csv('percent-bachelors-degrees-women-usa.csv')
cb_dark_blue = (0/255,107/255,164/255)
cb_orange = (255/255, 128/255, 14/255)
fig = plt.figure(figsize=(18, 3))
for sp in range(0,6):
ax = fig.add_subplot(1,6,sp+1)
ax.plot(women_degrees['Year'], women_degrees[stem_cats[sp]],
c=cb_dark_blue, label='Women', linewidth=3)
ax.plot(women_degrees['Year'], 100-women_degrees[stem_cats[sp]],
c=cb_orange, label='Men', linewidth=3)
ax.spines["right"].set_visible(False)
ax.spines["left"].set_visible(False)
ax.spines["top"].set_visible(False)
ax.spines["bottom"].set_visible(False)
ax.set_xlim(1968, 2011)
ax.set_ylim(0,100)
ax.set_title(stem_cats[sp])
ax.tick_params(bottom="off", top="off", left="off", right="off")
if sp == 0:
ax.text(2005, 87, 'Men')
ax.text(2002, 8, 'Women')
elif sp == 5:
ax.text(2005, 62, 'Men')
ax.text(2001, 35, 'Women')
plt.show()
fig2 = plt.figure(figsize=(12,18))
cats_grp = [stem_cats, lib_arts_cats, other_cats]
cb_grey = (171/255, 171/255, 171/255)
for row_idx in range(0,6):
for col_idx in range(0,3):
ax_fig_number = (row_idx * 3) + (col_idx + 1)
if ax_fig_number != 17:
ax = fig2.add_subplot(6, 3, ax_fig_number)
category = cats_grp[col_idx][row_idx]
ax.plot(women_degrees['Year'],
women_degrees[category],
c=cb_dark_blue, label="Women", linewidth=3)
ax.plot(women_degrees['Year'],
100 - women_degrees[category],
c=cb_orange, label="Men", linewidth=3)
ax.set_title(category)
ax.set_ylim(0,100)
ax.set_xlim(1968,2011)
ax.tick_params(bottom="off",top="off",
left="off",right="off")
ax.set_yticks([0,100])
ax.axhline(50, c=cb_grey, alpha=0.3)
for spine in ("bottom","top","right","left"):
ax.spines[spine].set_visible(False)
if ax_fig_number == 1:
ax.text(2000, 80, "Women")
ax.text(2005, 15, "Men")
elif ax_fig_number == 16:
ax.text(2000, 10, "Women")
ax.text(2005, 90, "Men")
elif ax_fig_number == 2:
ax.text(2000, 75, "Women")
ax.text(2005, 23, "Men")
elif ax_fig_number == 3:
ax.text(2000, 90, "Women")
ax.text(2005, 7, "Men")
elif ax_fig_number == 18:
ax.text(2000, 33, "Women")
ax.text(2005, 63, "Men")
if ax_fig_number not in (16, 17, 18):
ax.tick_params(labelbottom="off")
plt.savefig("gender_degrees.png")
plt.show()