O primeiro passo é fazer uma lista com as cores que deseja para cada gráfico. As cores padrões da biblioteca Matplotlib são definidas da seguinte forma:
b: blue
g: green
r: red
c: cyan
m: magenta
y: yellow
k: black
w: white
Como exemplo, escolhi as cores azul, verde e vermelho, então a lista ficará da seguinte forma:
cores = ['b', 'g', 'r']
A ideia é que o primeiro gráfico tenha a cor azul, o segundo verde e o terceiro vermelho.
Precisaremos alterar o nosso código para que possamos acessar os índices da lista de cores, pois, na primeira iteração pegaremos o valor de cores na posição 0(azul), da segunda vez o valor de cores na posição 1(verde) e por fim, a posição 2(vermelho).
Para conseguirmos o índice podemos utilizar a função enumerate
em nosso laço for. Com ela conseguiremos adicionar um contador de iterações, por padrão ele começará com zero. Ou seja, a primeira iteração o índice será o 0, a segunda o 1, a terceira o 2. E são esses números que precisaremos para acessar a lista de cores. A sintaxe do enumerate é parecida com o código abaixo:
for indice, nota in enumerate(notas):
Agora, precisamos passar a lista de cores com seu respectivo índice para o nosso gráfico através do atributo colors
:
plt.plot(x, y, marker ='x', color=cores[indice])
Com isso, na primeira iteração color será igual a azul, na segunda verde e assim por diante.
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]
cores = ['b', 'g', 'r']
for indice, nota in enumerate(notas):
x = list(range(1, 9))
y = nota[1:]
plt.plot(x, y, marker ='x', color=cores[indice])
plt.xlabel("Provas")
plt.ylabel("Notas")
plt.title(nota[0])
plt.show()
Caso queira ver mais opções de cores indico este link da documentação. E sobre a função enumerate recomendo a leitura deste trecho da documentação.
Qualquer dúvida estou por aqui.