Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Não está gerando os gráficos em area

Não estava conseguindo gerar os gráficos , então fiz dessa forma

area = plt.figure() g1 = area.add_subplot(2, 2, 1) g1.scatter(dados.Valor, dados.Area) g1.set_title('Valor X Área')

area = plt.figure() g2 = area.add_subplot(2, 2, 1) g2.hist(dados.Valor) g2.set_title('Histograma')

area = plt.figure() g3 = area.add_subplot(2, 2, 1) dados_g3 = dados.Valor.sample(100) dados_g3.index = range(dados_g3.shape[0]) g3.plot(dados_g3) g3.set_title('Amostra (Valor)')

area = plt.figure() g4 = area.add_subplot(2, 2, 1) 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')

Os gráficos são gerados , porém quando vou salvar, ele salva apena 1 grafico ( grafico de barras), podem me ajudar?

3 respostas
solução!

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!

Obrigada, deu certo!!

Oi Swellen!

Fico muito feliz que tenha dado tudo certo!! Estarei sempre à disposição para mais dúvidas ^^

Eu queria te pedir para marcar o tópico acima como solução para que essa resposta possa ajudar outros alunos que tenham dúvidas semelhantes.

Bons estudos!