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

10 Desafío: visualizando datos de ventas de tiendas diferentes

Trabajas como Analista de Datos en una empresa minorista y te asignaron la tarea de crear una figura con subgráficos que muestre la variación en el número de ventas en cuatro tiendas diferentes a lo largo de un año. La gerencia de la empresa necesita visualizar claramente las tendencias de ventas en cada tienda, para que puedan tomar decisiones estratégicas sobre inventarios y acciones de marketing. Para ello, debes crear cuatro subgráficos dispuestos en dos filas y dos columnas, donde cada subgráfico represente una tienda diferente. En este desafío, cada subgráfico debe presentar un gráfico de líneas que muestre la variación del número de ventas a lo largo de los meses del año.

¡Ahora es el momento de mostrar tus habilidades en análisis de datos y visualización! Para crear el DataFrame con el número de ventas de las tiendas y crear la figura, utiliza la siguiente información:

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]}

Copia el código
Consejo: Para facilitar la creación de los subgráficos, puedes definir la columna "tiendas" como índice del DataFrame y utilizar la propiedad loc de la biblioteca Pandas para trazar cada una de las tiendas.

¡No olvides agregar un título general a la figura, títulos a los subgráficos y etiquetas a los ejes! Además, asegúrate del tamaño de la figura y del espaciado entre los subgráficos.

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]
}

# Creación del DataFrame
df_ventas = pd.DataFrame(ventas_2022, index=tiendas)

# Configuración de la figura con una cuadrícula de 2x2
fig, ax = plt.subplots(2, 2, figsize=(14, 10))

# Lista de meses para el eje X
meses = df_ventas.columns

# Trazado de los subgráficos por tienda

# Tienda A (Fila 0, Columna 0)
ax[0, 0].plot(meses, df_ventas.loc['A'], color='blue', marker='o', label='Tienda A')
ax[0, 0].set_title('Tendencia: Tienda A')
ax[0, 0].set_xlabel('Mes')
ax[0, 0].set_ylabel('N° de Ventas')
ax[0, 0].grid(True, linestyle='--', alpha=0.6)

# Tienda B (Fila 0, Columna 1)
ax[0, 1].plot(meses, df_ventas.loc['B'], color='green', marker='s', label='Tienda B')
ax[0, 1].set_title('Tendencia: Tienda B')
ax[0, 1].set_xlabel('Mes')
ax[0, 1].set_ylabel('N° de Ventas')
ax[0, 1].grid(True, linestyle='--', alpha=0.6)

# Tienda C (Fila 1, Columna 0)
ax[1, 0].plot(meses, df_ventas.loc['C'], color='red', marker='^', label='Tienda C')
ax[1, 0].set_title('Tendencia: Tienda C')
ax[1, 0].set_xlabel('Mes')
ax[1, 0].set_ylabel('N° de Ventas')
ax[1, 0].grid(True, linestyle='--', alpha=0.6)

# Tienda D (Fila 1, Columna 1)
ax[1, 1].plot(meses, df_ventas.loc['D'], color='orange', marker='v', label='Tienda D')
ax[1, 1].set_title('Tendencia: Tienda D')
ax[1, 1].set_xlabel('Mes')
ax[1, 1].set_ylabel('N° de Ventas')
ax[1, 1].grid(True, linestyle='--', alpha=0.6)

fig.suptitle('Análisis Comparativo de Ventas Mensuales \n Año 2022', fontsize=18, fontweight='bold')
plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # Ajusta el espacio para evitar solapamientos

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

Parece que estás en el camino correcto con tu código para crear subgráficos que muestren la variación de ventas en las diferentes tiendas. Aquí tienes un ejemplo detallado de cómo puedes lograrlo utilizando Pandas y Matplotlib:

import pandas as pd
import matplotlib.pyplot as plt

# Datos de ventas
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]
}

# Creación del DataFrame
df_ventas = pd.DataFrame(ventas_2022, index=tiendas)

# Configuración de la figura con una cuadrícula de 2x2
fig, ax = plt.subplots(2, 2, figsize=(14, 10))

# Lista de meses para el eje X
meses = df_ventas.columns

# Trazado de los subgráficos por tienda

# Tienda A (Fila 0, Columna 0)
ax[0, 0].plot(meses, df_ventas.loc['A'], color='blue', marker='o', label='Tienda A')
ax[0, 0].set_title('Tendencia: Tienda A')
ax[0, 0].set_xlabel('Mes')
ax[0, 0].set_ylabel('N° de Ventas')
ax[0, 0].grid(True, linestyle='--', alpha=0.6)

# Tienda B (Fila 0, Columna 1)
ax[0, 1].plot(meses, df_ventas.loc['B'], color='green', marker='s', label='Tienda B')
ax[0, 1].set_title('Tendencia: Tienda B')
ax[0, 1].set_xlabel('Mes')
ax[0, 1].set_ylabel('N° de Ventas')
ax[0, 1].grid(True, linestyle='--', alpha=0.6)

# Tienda C (Fila 1, Columna 0)
ax[1, 0].plot(meses, df_ventas.loc['C'], color='red', marker='^', label='Tienda C')
ax[1, 0].set_title('Tendencia: Tienda C')
ax[1, 0].set_xlabel('Mes')
ax[1, 0].set_ylabel('N° de Ventas')
ax[1, 0].grid(True, linestyle='--', alpha=0.6)

# Tienda D (Fila 1, Columna 1)
ax[1, 1].plot(meses, df_ventas.loc['D'], color='orange', marker='v', label='Tienda D')
ax[1, 1].set_title('Tendencia: Tienda D')
ax[1, 1].set_xlabel('Mes')
ax[1, 1].set_ylabel('N° de Ventas')
ax[1, 1].grid(True, linestyle='--', alpha=0.6)

# Título general de la figura
fig.suptitle('Análisis Comparativo de Ventas Mensuales \n Año 2022', fontsize=18, fontweight='bold')
plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # Ajusta el espacio para evitar solapamientos

# Mostrar la figura
plt.show()

Este código crea un gráfico de líneas para cada tienda, mostrando la tendencia de ventas a lo largo de los meses. Asegúrate de ajustar el tamaño de la figura y el espaciado entre los subgráficos para una mejor visualización.

Espero que esto te sea de ayuda y buenos estudios!