Desafio: customizando os subplots com dados de vendas de diferentes lojas
Criar uma figura com subplots que apresentam a variação no número de vendas em quatro diferentes lojas ao longo de um ano. Explore as opções de customização dos subplots para deixar a figura mais clara e atraente para a gerência da empresa.
Importando as bibliotecas:
import pandas as pd
import matplotlib.pyplot as plt
Dados:
lojas = ['A', 'B', 'C', 'D']
vendas_2022 = {'Jan': [100, 80, 150, 50],
    'Fev': [120, 90, 170, 60],
    'Mar': [150, 100, 200, 80],
    'Abr': [180, 110, 230, 90],
    'Mai': [220, 190, 350, 200],
    'Jun': [230, 150, 280, 120],
    'Jul': [250, 170, 300, 140],
    'Ago': [260, 180, 310, 150],
    'Set': [240, 160, 290, 130],
    'Out': [220, 140, 270, 110],
    'Nov': [400, 220, 350, 190],
    'Dez': [300, 350, 400, 250]
}
# Criando DataFrame
vendas_lojas = pd.DataFrame (vendas_2022, index=lojas)
vendas_lojas
| index | Jan | Fev | Mar | Abr | Mai | Jun | Jul | Ago | Set | Out | Nov | Dez | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | 100 | 120 | 150 | 180 | 220 | 230 | 250 | 260 | 240 | 220 | 400 | 300 | 
| B | 80 | 90 | 100 | 110 | 190 | 150 | 170 | 180 | 160 | 140 | 220 | 350 | 
| C | 150 | 170 | 200 | 230 | 350 | 280 | 300 | 310 | 290 | 270 | 350 | 400 | 
| D | 50 | 60 | 80 | 90 | 200 | 120 | 140 | 150 | 130 | 110 | 190 | 250 | 
Importando as cores da Biblioteca Matplotlib:
#Criando lista com cores
cores = ['darkmagenta', 'forestgreen', 'navy', 'darkorange']
Criando a visualização dos gráficos:
#Criando os 4 gráficos para comparação;
#Vamos criar um gráfico de linhas com subplot, visto que a resolução é "criar uma figura com subplots que apresentam a variação no número de vendas em quatro diferentes lojas ao longo de um ano. "
fig, axs = plt.subplots(2, 2, figsize=(20,10))
plt.subplots_adjust (wspace=0.4, hspace=0.5)
fig.suptitle('Vendas no ano de 2022 nas lojas A,B,C e D\nno período de Janeiro à Dezembro', fontsize=20)
#Plotando os gráficos
for i, ax in enumerate(axs.flat):
  ax.plot(vendas_lojas.loc[vendas_lojas.index[i]], color=cores[i], lw=3)
  ax.set_title(f'Vendas na loja {vendas_lojas.index[i]}', loc='left', fontsize=16)
  ax.set_xlabel('Mês', fontsize=14)
  ax.set_ylabel('Vendas', fontsize=14)
  ax.tick_params(axis='both', labelsize=14)
  ax.grid(color='lightgrey')
  y_min = 30
  y_max = 420
  for ax in axs.ravel():
    ax.set_ylim(y_min, y_max)
plt.show()
 )
  )
Projeto no Colab: https://colab.research.google.com/drive/1CBJ9GPStDfNLwpogVvWO_6JfU6ZJ21hL?usp=sharing
 
            