AZUL1, AZUL2, AZUL3, AZUL4, AZUL5, AZUL6 = '#174A7E', '#4A81BF', "#6495ED", '#2596BE', '#94AFC5', '#CDDBF3'
CINZA1, CINZA2, CINZA3, CINZA4, CINZA5, BRANCO = '#231F20', '#414040', '#555655', '#A6A6A5', '#BFBEBE', '#FFFFFF'
VERMELHO1, VERMELHO2, LARANJA1 = '#C3514E', '#E6BAB7', '#F79747'
VERDE1, VERDE2, VERDE3 = '#0C8040', '#9ABB59', '#9ECCB3'
ideb_saeb_medio = ideb.query("anos_escolares == 'EM'")[[ 'ano','nota_saeb_matematica', 'nota_saeb_lingua_portuguesa', 'taxa_aprovacao']]
ideb_saeb_medio = ideb_saeb_medio.reset_index(drop = True)
ideb_saeb_medio.head()
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
fig, ax = plt.subplots(figsize = (10,8))
ax = sns.scatterplot(data = ideb_saeb_medio, x = 'nota_saeb_lingua_portuguesa', y = 'nota_saeb_matematica', hue = 'taxa_aprovacao',
size = 'taxa_aprovacao', sizes = (10,200), color = AZUL2)
plt.suptitle('Relaçã entre as notas de matemática e lingua portuguesa do Saeb', size = 18, color = CINZA1, ha = 'right', x = 0.9, y = 1)
plt.title('Do Ensino Médio (EM) entre os anos de 2005 e 2021', size = 16, color = CINZA2, ha = 'right', pad = 20, x =0.7, y = 1)
ax.set_xlabel('Notas de Matemática (0-500)', fontsize = 14)
ax.set_ylabel('Notas de Português (0-500)', fontsize = 14)
ax.legend(bbox_to_anchor = (230,350), title = 'Taxa de aprovação (%)', fontsize = 10, loc = 'upper left', bbox_transform = ax.transData )
ax.xaxis.set_tick_params(labelsize=11, color = CINZA3)
ax.yaxis.set_tick_params(labelsize=11, color = CINZA3)
ax.tick_params(bottom=True, left=True)
ax.set_xlim(230, 350)
ax.set_ylim(230, 350)
ax.spines[['top','right']].set_visible(False)
xticks = np.arange(230, 360, 15)
yticks = np.arange(230, 360, 15)
plt.setp(ax, xticks=xticks, yticks=yticks)
ax.scatter([325], [300], color=LARANJA1, s=75)
plt.axvline(x = 325, color = CINZA5, linestyle='--', linewidth=1)
plt.axhline(y = 300, color = CINZA5, linestyle='--', linewidth=1)
ax.text(326, 298, 'Meta mínima\nde proficiência', color=CINZA3, fontsize=10, fontweight='bold')
plt.show()