【问题标题】:Line plot with multiple lines pandas带有多行熊猫的线图
【发布时间】:2018-08-02 02:58:32
【问题描述】:

我试图通过显示他们多年来积分的折线图来比较两名球员。我想为每个玩家画一条线,在 x 轴上是年份,在 y 轴上是那一年的平均分。我可以使用 groupby 来获取数字,但不能将它们单独绘制在图表上。

        Name         Year   Pts
2264    Mike Evans   2017   10.7 
2266    T.Y. Hilton  2017   10.0 
2440    Mike Evans   2013   7.5 
10271   T.Y. Hilton  2013   12.4 
10499   T.Y. Hilton  2013   1.3 

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    pivot_tableaggfunc='mean' 一起使用:

    df.pivot_table('Pts', 'Year', 'Name', aggfunc='mean').plot(
              kind='line', marker='o', xticks=df.Year.unique()
    )
    
    # Pivot table produces:
    # Name  MikeEvans  T.Y.Hilton
    # Year
    # 2013        7.5        6.85
    # 2017       10.7       10.00
    

    【讨论】:

      【解决方案2】:

      seaborn 是一个非常有用的库,用于绘制DataFrames。对于大多数绘图,它允许您指定一个 hue 参数,该参数基本上将您的数据分组以进行绘图。

      import seaborn as sns
      
      sns.pointplot(data = df.groupby(['Name', 'Year']).mean().reset_index(), 
                    x='Year', y='Pts', hue='Name')
      

      【讨论】:

        猜你喜欢
        • 2017-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-16
        • 2019-08-16
        • 1970-01-01
        • 2017-10-29
        相关资源
        最近更新 更多