代码之家  ›  专栏  ›  技术社区  ›  Nikko

Stackplot熊猫groupby

  •  0
  • Nikko  · 技术社区  · 6 年前

    我想在我的数据上使用stackplot。但是,它需要首先分组。我也希望它能从群比那里得到传奇,就像它使用测向图(图例=真)

                  Region  Dengue_Cases
    Date                              
    2008-01-01  Region.I      2.953926
    2008-02-01  Region.I      2.183336
    2008-01-01  Region.II     0.972410
    2008-02-01  Region.II     9.357156
    2008-01-01  Region.III    7.320599
    
    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    fig, ax = plt.subplots(figsize=(15, 10))
    plt.style.use('fivethirtyeight')
    df.set_index('Date', inplace=True)
    
    #ax.stackplot(df['Date'], df.groupby('Region')['Dengue_Cases'], legend=True)
    

    我用了上面的代码,但我猜它是错误的,因为它发送错误。

    1 回复  |  直到 6 年前
        1
  •  2
  •   ALollz    6 年前

    IIUUC,你可以得到你想要的 DataFrame.plot.area() ,尽管你需要先调整一下 DataFrame

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots(figsize=(9, 6))
    plt.style.use('fivethirtyeight')
    
    df = df.set_index('Date')
    _ = df.pivot(columns='Region', values='Dengue_Cases').plot.area(ax=ax)
    
    _ = plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")
    plt.show()
    

    enter image description here