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