0
respostas

10 Desafio: visualizando dados de vendas de diferentes lojas

Para resolver :E necessario usar a biblioteca Matplotlib para a criação da estrutura de subplots e o Pandas para a manipulação dos dados.A estrutura de $2 \times 2$ (duas linhas e duas colunas) é ideal para comparar as quatro lojas simultaneamente sem poluir visualmente um único gráfico.

import pandas as pd
import matplotlib.pyplot as plt

1. Preparação dos 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 o DataFrame e definindo as lojas como índice

df = pd.DataFrame(vendas_2022, index=lojas)

2. Criação da figura e dos subplots (2 linhas e 2 colunas)

fig, axs = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('Tendência de Vendas Anual - Por Loja (2022)', fontsize=20, fontweight='bold')

Lista de cores para diferenciar as lojas

cores = ['blue', 'orange', 'green', 'red']

3. Iteração para plotar cada loja em seu respectivo quadrante

for i, loja in enumerate(lojas):
# Calculando a posição na grade (0,0), (0,1), (1,0), (1,1)
linha = i // 2
coluna = i % 2
ax = axs[linha, coluna]

# Plotando os dados
ax.plot(df.columns, df.loc[loja], marker='o', color=cores[i], linewidth=2)

# Customização de cada subplot
ax.set_title(f'Loja {loja}', fontsize=14)
ax.set_xlabel('Mês')
ax.set_ylabel('Número de Vendas')
ax.grid(True, linestyle='--', alpha=0.6)

# Definindo um limite superior comum no eixo Y para facilitar a comparação visual
ax.set_ylim(0, 450)

4. Ajustando o espaçamento para evitar sobreposição

plt.tight_layout(rect=[0, 0.03, 1, 0.95])

Exibindo o resultado

plt.show()