Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Projeto Desafio: Visualizando dados de vendas de diferentes lojas

Segue abaixo o projeto:

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

lojas, vendas_2022

Importando as bibliotecas:

#Importando as Bibliotecas
import pandas as pd
import matplotlib.pyplot as plt

Criando o DataFrame:

# Criando o DataFrame
df = pd.DataFrame(vendas_2022, index=lojas)
df.index.name = 'loja'
df

Criando os gráficos:

#Gráficos por figuras e subplots
fig, axs = plt.subplots(2, 2, figsize=(14, 8))
plt.subplots_adjust(wspace=0.3, hspace=0.4)
fig.suptitle('Análise de Vendas do Ano')

axs[0,0].plot(df.loc['A'])
axs[0,0].set_title('Vendas na Loja A')

axs[0, 1].plot(df.loc['B'])
axs[0, 1].set_title('Vendas na loja B')

axs[1, 0].plot(df.loc['C'])
axs[1, 0].set_title('Vendas na loja C')

axs[1, 1].plot(df.loc['D'])
axs[1, 1].set_title('Vendas na loja D')

#Estabelecendo a definição dos Eixos em X = mês e Y = Nº de Vendas

for ax in axs.flat:
    ax.set_xlabel('Mês')
    ax.set_ylabel('Número de vendas')
    ax.grid()

##Estabelecer o valor máximo de vendas pelo DataFrame, deixando um valor de 20% de margem no valor máximo
ymax = df.max().max()
ymax = int(ymax + (ymax * 0.20))

for ax in axs.ravel():
  ax.set_ylim(ymin, ymax)

  #adicionando uma contribuição de visualização do fórum
  for i, valor in enumerate(df.loc[ax.get_title().split()[-1]]):
        ax.annotate(f'{valor}', (i, valor), textcoords="offset points", xytext=(0,5), ha='center')

plt.show()

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

1 resposta
solução!

Boa tarde Adriano! Como vai?

Obrigado por compartilhar seu projeto com a comunidade Alura. O rótulo de dados nas linhas dos gráficos deu um toque sofisticado a sua apresentação. Uma dica para facilitar ainda mais a identificação é adicionar um marcador aos rótulos de dados e até mesmo uma cor para cada plot. Por exemplo:

fig, axs = plt.subplots(2, 2, figsize=(15, 8))
fig.subplots_adjust(hspace=0.5, wspace=0.3)
fig.suptitle('Comparativo de Vendas de 2022 entre as Filiais')

axs[0, 0].plot(df.loc['A', df.columns], marker='o', color='red')
axs[0, 0].set_title('Filial A')

axs[0, 1].plot(df.loc['B', df.columns], marker='o', color='blue')
axs[0, 1].set_title('Filial B')

axs[1, 0].plot(df.loc['C', df.columns], marker='o', color='orange')
axs[1, 0].set_title('Filial C')

axs[1, 1].plot(df.loc['D', df.columns], marker='o', color='black')
axs[1, 1].set_title('Filial D')

for ax in axs.flat:
    ax.set_xlabel('Meses')
    ax.set_ylabel('Vendas')

ymin = 0
ymax = 450
for ax in axs.ravel():
    ax.set_ylim(ymin, ymax)
    for i, valor in enumerate(df.loc[ax.get_title().split()[-1]]):
        ax.annotate(f'{valor}', (i, valor), textcoords="offset points", xytext=(0,5), ha='center')


plt.show()

Resultado:

Imagem que mostra o gráfico comparativo com as mudanças aplicadas

Conte com o apoio do Fórum na sua jornada.

Abraços e bons estudos!