Conversando com meu amigo, ele me mostrou uma solução simples e que eu não tinha associado:
Nas listas de cada matéria, o primeiro item de cada lista é uma variável string, com o nome de cada matéria
Na criação do nosso gráfico, quando setamos o y, excluímos o primeiro item da lista para que seja puxado somente as variáveis do tipo int
Sendo assim, quando formos colocar o título no plt.title, é só colocar para puxarmos o primeiro item da lista, que é uma variável do tipo string e que contém a informação que nós queremos (o nome de cada matéria).
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()