Desafio 1: Qual a relação entre as notas das disciplinas de língua portuguesa e matemática do SAEB no Ensino Fundamental Anos Finais no período das 5 últimas avaliações?
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
1. Preparação dos dados (Supondo que seu df se chama df_ideb)
Filtrando pelos Anos Finais e pegando os últimos 5 anos de avaliação
anos_finais = df_ideb.query("etapa == 'Ensino Fundamental (Anos Finais)'")
ultimos_5_anos = anos_finais['ano'].unique()[-5:]
df_filtrado = anos_finais[anos_finais['ano'].isin(ultimos_5_anos)]
2. Criação do Gráfico de Dispersão
fig, ax = plt.subplots(figsize=(12, 7))
sns.scatterplot(data=df_filtrado, x='nota_saeb_matematica', y='nota_saeb_lingua_portuguesa',
hue='ano', palette='viridis', s=60, ax=ax)
3. Linhas de Referência (Proficiência QEdu)
Valores aproximados para Anos Finais: Português (275) e Matemática (300)
ax.axhline(275, color='red', linestyle='--', alpha=0.5, label='Nível Adequado PT')
ax.axvline(300, color='blue', linestyle='--', alpha=0.5, label='Nível Adequado MT')
4. Ajustes estéticos
ax.set_title('Relação SAEB: Matemática vs Língua Portuguesa (Últimas 5 Avaliações)', fontsize=15)
ax.set_xlabel('Nota SAEB Matemática', fontsize=12)
ax.set_ylabel('Nota SAEB Língua Portuguesa', fontsize=12)
ax.legend(title='Ano da Prova', bbox_to_anchor=(1, 1))
plt.show()
Desafio 2: Qual seria a relação entre as notas do SAEB no Ensino Médio? Conseguimos notar como as duas se comportam em relação a taxa de aprovação e as regiões?
import plotly.express as px
1. Filtragem dos dados para o Ensino Médio
Supondo que seu DataFrame se chama df_ideb
df_em = df_ideb.query("etapa == 'Ensino Médio' and ano == 2021") # Foco no ano mais recente
2. Criação do Gráfico de Bolhas
fig = px.scatter(
df_em,
x="nota_saeb_matematica",
y="nota_saeb_lingua_portuguesa",
size="taxa_aprovacao", # O tamanho da bolha reflete a aprovação
color="regiao", # A cor identifica a região do país
hover_name="sigla_uf", # Nome do estado ao passar o mouse
title="Relação SAEB Ensino Médio: Notas vs. Aprovação por Região (2021)",
labels={
"nota_saeb_matematica": "Nota Matemática",
"nota_saeb_lingua_portuguesa": "Nota Português",
"taxa_aprovacao": "Taxa de Aprovação (%)"
}
)
3. Ajustes estéticos e de escala das bolhas
fig.update_traces(marker=dict(sizemode='area', sizeref=2.*max(df_em['taxa_aprovacao'])/(40.**2), line_width=1))
fig.show()