09 Desafío: personalizando los subplots con los datos de ventas de tiendas diferentes
¡Otra etapa de desafío está comenzando! Aprovecha la oportunidad propuesta y sumérgete en las posibilidades. En la clase anterior, tuviste el desafío de crear una figura con subgráficos que presentan la variación en el número de ventas en cuatro tiendas diferentes a lo largo de un año. ¡Ahora es el momento de llevar esa figura a un nuevo nivel! ¡Es hora de personalizarla! En esta segunda parte del desafío, debes explorar las opciones de personalización de los subgráficos para hacer que la figura sea más clara y atractiva para la gerencia de la empresa.
Algunas ideas de personalización que puedes explorar son:
Cambiar la posición de los títulos de los subgráficos a la izquierda.
Aumentar el tamaño de la fuente del título general de la figura para resaltarlo.
Aumentar el tamaño de los títulos y etiquetas de los ejes de los subgráficos.
Hacer que las líneas sean más gruesas.
Cambiar el color de las líneas de cada tienda para diferenciarlas aún más.
¡Siéntete libre de probar más personalizaciones!
Y aquí va otro consejo: puedes reducir el tamaño del código utilizando el comando for i, ax in enumerate(axs.flat):, que permite un bucle que itera sobre todos los subgráficos de la figura. Dentro de este bucle, puedes pasar las funciones plot, set_title, set_xlabel, set_ylabel, y así sucesivamente...
Recuerda que los datos son los siguientes:
tiendas = ['A', 'B', 'C', 'D']
ventas_2022 = {'Ene': [100, 80, 150, 50],
'Feb': [120, 90, 170, 60],
'Mar': [150, 100, 200, 80],
'Abr': [180, 110, 230, 90],
'May': [220, 190, 350, 200],
'Jun': [230, 150, 280, 120],
'Jul': [250, 170, 300, 140],
'Ago': [260, 180, 310, 150],
'Sep': [240, 160, 290, 130],
'Oct': [220, 140, 270, 110],
'Nov': [400, 220, 350, 190],
'Dec': [300, 350, 400, 250]}
¡Ahora es el momento de poner manos a la obra! Experimenta diferentes personalizaciones y haz que la figura sea aún más impresionante. ¡Vamos!
import pandas as pd
import matplotlib.pyplot as plt
tiendas = ['A', 'B', 'C', 'D']
ventas_2022 = {
'Ene': [100, 80, 150, 50],
'Feb': [120, 90, 170, 60],
'Mar': [150, 100, 200, 80],
'Abr': [180, 110, 230, 90],
'May': [220, 190, 350, 200],
'Jun': [230, 150, 280, 120],
'Jul': [250, 170, 300, 140],
'Ago': [260, 180, 310, 150],
'Sep': [240, 160, 290, 130],
'Oct': [220, 140, 270, 110],
'Nov': [400, 220, 350, 190],
'Dec': [300, 350, 400, 250]
}
df_ventas = pd.DataFrame(ventas_2022, index=tiendas)
# Aumentamos el tamaño de la figura (figsize) para que los datos no se vean amontonados
fig, axs = plt.subplots(2, 2, figsize=(16, 10))
# Definimos una paleta de colores
colores = ['#0077b6', '#e63946', '#2a9d8f', '#f4a261']
# Bucle para iterar sobre los 4 subgráficos
for i, ax in enumerate(axs.flat):
tienda_actual = tiendas[i]
color_actual = colores[i]
# Graficamos la línea
ax.plot(df_ventas.columns, df_ventas.loc[tienda_actual],
color=color_actual, lw=3, marker='o', markersize=7, label=f'Tienda {tienda_actual}')
# Personalización de títulos
ax.set_title(f'Tendencia Mensual: Tienda {tienda_actual}', fontsize=14, loc='left', fontweight='bold', pad=10)
# Personalización de etiquetas de los ejes
ax.set_xlabel('Meses', fontsize=12)
ax.set_ylabel('N° de Ventas', fontsize=12)
ax.tick_params(axis='both', labelsize=10)
# Añadimos una cuadrícula
ax.grid(True, linestyle='--', alpha=0.4)
fig.suptitle('Análisis Comparativo de Ventas por Sucursal - Ejercicio 2022',
fontsize=22, fontweight='bold', color='#264653', y=1.02)
# Ajuste de diseño
plt.tight_layout()
plt.show()
