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

Plotar as Notas das 3 Disciplinas em um Único Gráfico

Oi, pessoal. Tudo certo?

Eu procurei no Stack Overflow uma maneira de plotar as notas das três disciplinas em um único gráfico (descobri que é super simples hehe). O gráfico que foi gerado a partir do código abaixo exibe as três disciplinas, cada uma com sua cor. A minha dúvida: como eu posso fazer uma legenda para cada disciplina nesse único gráfico? Tem como eu diferenciar cada disciplina com uma legenda que diga Matemática (escrito em cor laranja), Geo (em vermelho) e Port (em azul)?

import matplotlib.pyplot as plt

notas_matematica = ['Matemática',8,7,6,6,7,7,8,10]
notas_portugues = ['Português',9,9,9,8,5,6,8,5]
notas_geografia = ['Geografia',10,10,6,7,7,7,8,7]

notas = [notas_matematica, notas_portugues, notas_geografia]

for nota in notas:
  x = list(range(1, 9))
  y = nota[1:]
  plt.plot(x, y, marker='o')
plt.xlabel('Provas')
plt.ylabel('Notas')
#plt.title(nota[0])

plt.show()
#para plotar os três gráficos juntos, deixo fazer o loop,
#e só depois invoco o comando plt.show()
#como eu faço legenda para cada disciplina?
2 respostas
solução!

Oi Rodrigo, como você está?

Você pode utilizar o atributo legend e passar uma lista com os nomes que ficarão na legenda. No seu gráfico, a cor azul representa as notas de matemática, laranja o português e verde as notas de geografia e essa ordem é ditada pela lista de notas que há em seu código: notas = [notas_matematica, notas_portugues, notas_geografia]

Em código as legendas ficam da seguinte forma:

plt.legend(['Matemática', 'Port', 'Geo'])

Veja o resultado:

image

Código completo:

import matplotlib.pyplot as plt

notas_matematica = ['Matemática',8,7,6,6,7,7,8,10]
notas_portugues = ['Português',9,9,9,8,5,6,8,5]
notas_geografia = ['Geografia',10,10,6,7,7,7,8,7]

notas = [notas_matematica, notas_portugues, notas_geografia]

for nota in notas:
  x = list(range(1, 9))
  y = nota[1:]
  plt.plot(x, y, marker='o')
plt.xlabel('Provas')
plt.ylabel('Notas')
plt.legend(['Matemática', 'Port', 'Geo'])
#plt.title(nota[0])

plt.show()

Qualquer dúvida estou por aqui.

Abraços!

Que massa! Muito obrigado! Abraços :)