Oi, Jean, tudo bem?
Desculpe a demora em te responder!
O problema que você está obtendo deve ser por conta da disposição das disciplinas no eixo "x", que podem estar em ordem diferente da apresentada pelo instrutor. Note que as grandezas de cada um dos pontos nos gráficos são idênticas, só aparecem em posições diferentes no seu gráfico. Para que o gráfico fique idêntico ao do instrutor, você pode rodar o seguinte codigo:
df = pd.DataFrame(data = {'Fulano': [8, 10, 4, 8, 6, 10, 8],
'Beltrano': [10, 2, 0.5, 1, 3, 9.5, 10],
'Sicrano': [7.5, 8, 7, 8, 8, 8.5, 7]},
index = ['Matemática',
'Português',
'Inglês',
'Geografia',
'História',
'Física',
'Química'])
df.rename_axis('Matérias', axis = 'columns', inplace = True)
notas_fulando = df[['Fulano']]
nota_media_fulano = notas_fulano['Fulano'].mean()
notas_fulano['|Desvio|'] = notas_fulano['Desvio'].abs()
ax = notas_fulano['Fulano'].plot(style = 'o')
ax.figure.set_size_inches(14, 6)
ax.hlines(y = nota_media_fulano, xmin = 0, xmax = notas_fulano.shape[0] - 1, colors = 'red')
for i in range(notas_fulano.shape[0]):
ax.vlines(x = i, ymin = nota_media_fulano, ymax = notas_fulano['Fulano'][i], linestyle='dashed')
ax
No código acima, estamos recriando a tabela com as notas dos alunos, depois realizamos os mesmos passos que você fez em sua postagem original.
Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!