Abaixo, compartilho o código que utilizei para a resolução do desafio proposto:
import pandas as pd
import matplotlib.pyplot as plt
## Dados fornecidos
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]
}
# Definindo DataFrame inicial
df = pd.DataFrame(vendas_2022, index=lojas)
df
# Criação do gráfico
fig, axs = plt.subplots(2, 2, figsize=(15,7))
fig.subplots_adjust(hspace=0.5)
fig.suptitle('Tendências de vendas por loja do ano de 2022')
axs[0,0].plot(df.loc['A', df.columns])
axs[0,0].set_title('Vendas loja A')
axs[0,1].plot(df.loc['B', df.columns])
axs[0,1].set_title('Vendas loja B')
axs[1,0].plot(df.loc['C', df.columns])
axs[1,0].set_title('Vendas loja C')
axs[1,1].plot(df.loc['D', df.columns])
axs[1,1].set_title('Vendas loja D')
# Definindo o valor máximo que existe no dataframe
# E deixando ymax com 10% a mais deste valor
ymax = df.max().max()
ymax = int(ymax + (ymax*0.10))
for ax in axs.flat:
ax.set_xlabel('Meses')
ax.set_ylabel('Quantidade de Vendas')
ax.grid()
ax.set_ylim(0, ymax)
plt.show()