saber['fami_estratovivienda'] = saber['fami_estratovivienda'].cat.rename_categories({'Sin estrato': 'Rural'})
resumen_estrato = (
saber['fami_estratovivienda']
.value_counts(dropna=False, sort=False)
.rename_axis('fami_estratovivienda')
.reset_index(name='n')
)
resumen_estrato = resumen_estrato[resumen_estrato['fami_estratovivienda'].notna()].copy()
resumen_estrato['Porcentaje'] = resumen_estrato['n'] / resumen_estrato['n'].sum() * 100
fig, ax = plt.subplots(figsize=(7, 4))
ax.grid(True, axis='y', alpha=0.25, zorder = 0)
ax.bar(resumen_estrato['fami_estratovivienda'].astype(str),
resumen_estrato['Porcentaje'],
color='0.60',
edgecolor='0.50',
zorder = 3)
ax.set_xlabel('Estrato de la vivienda familiar')
ax.set_ylabel('Porcentaje')
ax.set_title('Distribución de los estudiantes según estrato de la vivienda')
ax.yaxis.set_major_formatter(PercentFormatter(xmax=100, decimals=0))
fig.text(0.85, 0, 'Fuente: ICFES',
ha='left', va='center', fontsize=9, style='italic', color='0.5')