首页 > 解决方案 > 数据框中的单个图上的多条线

问题描述

我需要绘制按类型划分的电影的平均预算随着时间的推移。我有一个带有和列Genre的熊猫数据框。我能够为每种类型使用一个图表绘制数据,但我无法让所有图表都落在同一个图表上。这是我用来获取多个图表的代码。YearAverage Budget in Millions

for g in all_genres:
    plotgenre = refineddata[refineddata['Genre'].str.contains(g, na=False)]
    plotgenre.plot(kind='line',x='Year',y='Average Budget in Millions', label = g)

标签: python-3.xpandasdataframe

解决方案


您可以先创建图形和轴,然后使用它们来创建绘图:

np.random.seed(42)
all_genres = ['crime', 'romantic']
refineddata = pd.DataFrame({'Average Budget in Millions':np.random.normal(size=20),
                          'Year':range(20), 'Genre':np.random.choice(all_genres, 20)})

fig, ax = plt.subplots(1, figsize=(6,4))
for g in all_genres:
    plotgenre = refineddata[refineddata['Genre'].str.contains(g, na=False)]
    plotgenre.plot(kind='line',x='Year',y='Average Budget in Millions', label = g, ax=ax)

在此处输入图像描述

但是如果你可以使用seaborn库,那就更容易了:

import seaborn as sns
sns.lineplot(data=refineddata, x='Year', y='Average Budget in Millions', hue='Genre')

在此处输入图像描述


推荐阅读