0
respostas

[Projeto] 09 Desafio: customizando os subplots com dados de vendas de diferentes lojas

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

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

2. Configuração da Figura

fig, axs = plt.subplots(2, 2, figsize=(16, 10))

Customização do Título Geral (Destaque com tamanho maior)

fig.suptitle('Análise de Desempenho de Vendas - Ano 2022', fontsize=24, fontweight='bold', color='#333333')

Lista de cores personalizadas

cores = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728']

3. Loop otimizado com axs.flat

for i, ax in enumerate(axs.flat):
loja = lojas[i]

# Plotagem com espessura maior (linewidth) e marcadores
ax.plot(df.columns, df.loc[loja], color=cores[i], linewidth=3, marker='o', markersize=6)

# Alterar a posição do título para a esquerda (loc='left') e aumentar fonte
ax.set_title(f'Vendas Loja {loja}', loc='left', fontsize=16, fontweight='semibold')

# Aumentar tamanho dos rótulos dos eixos
ax.set_xlabel('Mês', fontsize=12)
ax.set_ylabel('Nº de Vendas', fontsize=12)

# Customizar os ticks dos eixos para melhor leitura
ax.tick_params(labelsize=10)

# Adicionar grade para facilitar a leitura dos valores
ax.grid(True, linestyle='--', alpha=0.5)

# Manter a escala constante para comparação justa
ax.set_ylim(0, 450)

4. Ajuste final de layout para evitar sobreposições

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

plt.show()