Добавление средних строк для каждого plt.plot в matplotlib? - PullRequest
0 голосов
/ 05 ноября 2018

Я ищу помощи в добавлении горизонтальной линии на моем графике для каждого plt.plot в моем линейном графике в среднем по этому конкретному plt.plot. Каждый plt.plot = сезон Seinfeld и. ось y = рейтинг IMDB, а ось x = номер эпизода Seinfeld.

Итак, чтобы уточнить, я смотрю нарисуйте несколько разных горизонтальных линий, учитывая средние значения разных значений y.

Вывод - прикрепленное изображение здесь И вот мой код:

# sets size for figure.
plt.figure(dpi=300)

# so you don't get 'ax' is not defined when running
ax = plt.gca()

# Put each season's IMDB rating into a variable for easy referencing
S1imdb = season_1['imdbRating'] 
S2imdb = season_2['imdbRating']
S3imdb = season_3['imdbRating']
S4imdb = season_4['imdbRating']
S5imdb = season_5['imdbRating']
S6imdb = season_6['imdbRating']
S7imdb = season_7['imdbRating']
S8imdb = season_8['imdbRating']
S9imdb = season_9['imdbRating']


# plot each season's IMDB rating separately 
plt.plot(S1imdb, label='Season 1')
plt.plot(S2imdb, label='Season 2')
plt.plot(S3imdb, label='Season 3')
plt.plot(S4imdb, label='Season 4')
plt.plot(S5imdb, label='Season 5')
plt.plot(S6imdb, label='Season 6')
plt.plot(S7imdb, label='Season 7')
plt.plot(S8imdb, label='Season 8')
plt.plot(S9imdb, label='Season 9')


# title the X and Y axes
# x axis is the episode number
# y axis is the rating from IMDB x/10

plt.xlabel('Episode Number')
plt.ylabel('IMDB Rating')

# legend
plt.legend(loc=2, prop={'size': 5})

# print out the plot
plt.show()

1 Ответ

0 голосов
/ 05 ноября 2018

Понял! Я просто использовал ax.hlines и вручную отредактировал длину средней линии по оси y на основе среднего значения по сезонам и длину по оси x на основе индекса каждого сезона ax.hlines (7.700000, 0, 6, ширина линии = 1, цвет = 'k')

...