Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

09 Desafío: personalizando los subplots con los datos de ventas de tiendas diferentes

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()

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola César, espero que estés bien

¡Qué bueno que estás trabajando en personalizar tus subgráficos! Aquí tienes algunas sugerencias para mejorar aún más tu gráfico:

  1. Colores de las líneas: Ya has asignado colores diferentes a cada tienda, lo cual es excelente para diferenciarlas visualmente.

  2. Títulos de los subgráficos: Has colocado los títulos a la izquierda, lo cual es una buena práctica para mejorar la legibilidad.

  3. Tamaño de las fuentes: Aumentaste el tamaño de los títulos y etiquetas, lo que ayuda a que la información sea más clara.

  4. Grosor de las líneas: Usar lw=3 para el grosor de las líneas es una buena elección para hacerlas más visibles.

  5. Título general: Has resaltado el título general con un tamaño de fuente más grande y un color diferente, lo cual es excelente.

  6. Cuadrícula: La cuadrícula ayuda a leer mejor los valores en los gráficos.

Si quieres experimentar más, podrías considerar:

  • Anotar puntos importantes: Usa ax.annotate() para destacar meses con ventas especialmente altas o bajas.
  • Estilo de marcadores: Cambia el estilo de los marcadores para cada tienda para añadir otra capa de diferenciación.
  • Tema de estilo: Experimenta con diferentes estilos de matplotlib usando plt.style.use('style_name').

¡Espero que estas ideas te sean útiles y que tu gráfico sea un éxito! ¡Bons estudios!