代码之家  ›  专栏  ›  技术社区  ›  Shashank Vivek

从一系列3列中绘制线图:Matplotlib

  •  1
  • Shashank Vivek  · 技术社区  · 7 年前

    我有一个df,我操作如下

    genres = ['Adventure','Action','Thriller','Science Fiction','Comedy']
    
    df_genre_sum = df_genre.groupby(['genre','release_year'])['revenue'].sum()[genres]
    
    print(df_genre_sum)
    

    结果是:

    img

    X轴=年

    Y轴=收入

    我是matplotlib的新手,我知道在序列发生变化时绘制图形 index value 但这个系列还有另一个层次。

    更新

    1985: 152427960.0, 1987: 191185897.0, 1990: 381293845.0, 1992: 14358033.0, 1993: 212954613.0, 1996: 959696788.0, 《历险记》:{1984:361744356.0, 1987: 191185897.0, 1989: 1002823860.0, 1992: 504050219.0, 1993: 1133054613.0, 1996: 678894988.0, 1997: 922401607.0}, 1985: 381109762.0, 1987: 38119483.0, 1989: 372485039.0, 1990: 721212258.0, 1992: 518408252.0, 1995: 390174654.0, 1996: 353602675.0, 1985: 381109762.0, 1989: 372485039.0, 1992: 14358033.0, 1993: 1079155768.0, 1996: 293648382.0, 《颤栗》:{1984:78371200.0, 1987: 191185897.0, 1990: 136766262.0, 1992: 658716349.0, 1993: 15668826.0, 1995: 710806752.0, 1997: 2178045256.0}}

    1 回复  |  直到 7 年前
        1
  •  1
  •   jezrael    7 年前

    我想你得先过滤一下 isin 具有 boolean indexing ,然后聚合 sum Series 重塑方式 unstack :

    df_genre_sum = (df_genre[df_genre['genre'].isin(genres)]
                     .groupby(['release_year', 'genre'])['revenue']
                     .sum()
                     .unstack())
    
    
    df_genre_sum.plot()