使用pandas绘制多条线的折线图

6

我正在尝试通过展示两位球员的年度得分折线图来进行比较。我想要每个球员都有一条线,在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 
2个回答

3
使用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

enter image description here


2

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

import seaborn as sns

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

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接