Oi Swellen! Tudo bom com você?
Ao usarmos o método add_subplot
devemos nos atentar bem aos parâmetros presentes nele que seguem a seguinte estrutura: add_subplot(nlinhas, ncolunas, index)
, sendo nlinhas a quantidade de linhas para os plots na figura, ncolunas a quantidade de colunas e index a posição de cada plot na figura. Como o subplot do seu código tem 2 linhas e 2 colunas, então há 4 posições disponíveis para seus plots, que podem ser indexadas de 1 a 4.
No entanto, analisando o seu código, percebi que você utilizou apenas da posição n° 1 do index, definindo sempre area.add_subplot(2, 2, 1), por isso, todos os seus plots apareceram na posição da 1° linha e 1° coluna da figura. Outro ponto importante é que, ao adicionar area = plt.figure()
em cada um dos gráficos, cria-se uma nova figura limpa de plots, por isso, ao salvar a figura, apenas o último plot era considerado.
A solução para isso, é alterar o index de cada subplot conforme segue o código:
area = plt.figure()
g1 = area.add_subplot(2, 2, 1) #index = 1 ou seja, 1° linha e 1° coluna
g1.scatter(dados.Valor, dados.Area)
g1.set_title('Valor X Área')
g2 = area.add_subplot(2, 2, 2) #index = 2 ou seja, 1° linha e 2° coluna
g2.hist(dados.Valor)
g2.set_title('Histograma')
g3 = area.add_subplot(2, 2, 3) #index = 3 ou seja, 2° linha e 1° coluna
dados_g3 = dados.Valor.sample(100)
dados_g3.index = range(dados_g3.shape[0])
g3.plot(dados_g3)
g3.set_title('Amostra (Valor)')
g4 = area.add_subplot(2, 2, 4) #index = 4 ou seja, 2° linha e 2° coluna
grupo = dados.groupby('Tipo')['Valor']
label = grupo.mean().index
valores = grupo.mean().values
g4.bar(label, valores)
g4.set_title('Valor Médio por Tipo')
area.savefig('grafico.png', dpi = 300, bbox_inches = 'tight')
Se tiver interesse em conhecer mais o método subplot vou deixar o link para a documentação. OBS: Infelizmente a documentação está em inglês, então, caso tenha dificuldade em relação a este idioma, indico que tente utilizar o tradutor do navegador, para conseguir efetuar a leitura em português, mas qualquer dúvida ou dificuldade estarei à disposição.
Eu espero ter te ajudado! Se o problema persistir ou surgir outra dúvida estarei disposta a ajudar ;-)
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!