Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Desafío: visualizando datos de ventas de tiendas diferentes

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)
df_ventas.head()

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

# Usamos las filas del DataFrame directamente, ya que las columnas representan los meses del año.
meses = df_ventas.columns.tolist()

# Creamos una figura con 2 filas y 2 columnas de subgráficos (total: 4 gráficos)
fig, axs = plt.subplots(2, 2, figsize=(10, 6))

# Título general del conjunto de gráficos (subplots)
# El parámetro y=1.02 eleva el título un poco sobre los subgráficos
fig.suptitle('Ventas anuales en 4 tiendas', y=1.02)

# Ajustamos el espacio entre subgráficos
# hspace → espacio vertical entre filas
# wspace → espacio horizontal entre columnas
fig.subplots_adjust(hspace=0.5, wspace=0.3)


# Primer gráfico: posición [0,0] → A
axs[0, 0].plot(df_ventas.loc['A', meses], color= '#cd5a0f')
axs[0, 0].set_title('Tienda A')

# Segundo gráfico: posición [0,1] → B
axs[0, 1].plot(df_ventas.loc['B', meses], color = '#a8bb09' )
axs[0, 1].set_title('Tienda B')

# Tercer gráfico: posición [1,0] → C
axs[1, 0].plot(df_ventas.loc['C', meses], color ='#1295bf')
axs[1, 0].set_title('Tienda c')

# Cuarto gráfico: posición [1,1] → D
axs[1, 1].plot(df_ventas.loc['D', meses], color ='#cd0fb3')
axs[1, 1].set_title('Tienda D')

# Establecemos el límite inferior y superior del eje y para todos los gráficos
ymin = 0    # Límite inferior del eje y
ymax = 450 # Límite superior del eje y

# Aplicamos los límites del eje y a cada uno de los subgráficos
for ax in axs.ravel():
  ax.set_ylim(ymin, ymax)  # Establece el rango del eje y desde 0 hasta 7000


# Configuramos cada subgráfico por separado usando un bucle
for ax in axs.flat:
    
    # Establecemos una separación de 100 entre cada marca del eje y
    ax.yaxis.set_major_locator(plt.MultipleLocator(100))
    # Etiqueta del eje x
    ax.set_xlabel('Meses')
    # Etiqueta del eje y
    ax.set_ylabel('Ventas')
    # Mostramos líneas de referencia con un estilo de línea punteada
    ax.grid(linestyle='--')


# Mostramos todos los gráficos
plt.show()

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