首页 > 解决方案 > 在 Matplotlib 图中叠加线?

问题描述

我正在尝试打印一个简单的折线图,其中输出跟踪 imdbRating 在节目中不同季节的时间。我的代码是这样输入的:

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']


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')
plt.show()

我的输出是这样的:

IMDB 评分 + 季数图

但是,我希望将这些线映射在彼此之上,而不是彼此相邻。我该怎么做呢?

标签: matplotlibdata-visualization

解决方案


您可以根据数据帧的长度创建新的 x 坐标。

seasons = [season_1, season_2, season_3, season_4, ...]

for i, season in enumerate(seasons):
    y = season['imdbRating']
    x = range(1, len(y)+1)
    plt.plot(x, y, label = "Season {}".format(i+1))

推荐阅读