1
resposta

Execução do desafio

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# Dados das vendas
data = {
    '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': [420, 250, 380, 210]
}

# Nomes das lojas
lojas = ['A', 'B', 'C', 'D']

# Criação do DataFrame
df_comparacao = pd.DataFrame(data, index=lojas)

# Configuração de estilo profissional
plt.style.use('seaborn-v0_8-muted')
fig, ax = plt.subplots(len(df_comparacao.columns), 1, figsize=(12, 18), sharex=True)

# Cores profissionais
colors = plt.cm.tab20.colors  # Paleta de 20 cores

# Plotando os dados
for i, coluna in enumerate(df_comparacao.columns):
    vendas_ordenadas = df_comparacao[coluna].sort_values(ascending=False)
    lojas_ordenadas = vendas_ordenadas.index
    ax[i].barh(
        y=lojas_ordenadas, 
        width=vendas_ordenadas, 
        color=colors[i % len(colors)], 
        alpha=0.85, 
        edgecolor='black'
    )
    ax[i].set_title(f"Vendas em {coluna}", fontsize=14, fontweight='bold')
    ax[i].set_xlabel('Vendas', fontsize=12)
    ax[i].grid(axis='x', linestyle='--', alpha=0.7)
    for j, v in enumerate(vendas_ordenadas):
        ax[i].text(v + 10, j, str(v), va='center', fontsize=10)  # Adiciona o valor nas barras

# Ajustes finais
plt.suptitle('Comparação de Vendas por Mês e Loja', fontsize=16, fontweight='bold')
plt.tight_layout(rect=[0, 0, 1, 0.96])  # Ajusta espaço para o título

#Salvando a Figura do Gráfico em PNG
fig.savefig('vendas_lojas_ano_2022', transparent=False, dpi=300, bbox_inches='tight')

plt.show() 
1 resposta

Insira aqui a descrição dessa imagem para ajudar na acessibilidade