【问题标题】:Displaying line graph using data frame grouping使用数据框分组显示折线图
【发布时间】:2017-02-20 22:44:46
【问题描述】:

我正在学习数据框并尝试不同的图表。我有一个视频游戏数据集,并试图绘制一个图表,在 x 轴上显示年份,在 y 轴上显示净销售额,并且该图表必须是每个视频游戏类型。我已经对数据进行了分组,但在显示它时遇到了问题。以下是我尝试过的:

import pandas as pd
%matplotlib inline
from matplotlib.pyplot import hist
df = pd.read_csv('VideoGames.csv')
s = df.groupby(['Genre','Year_of_Release']).agg(sum)['Global_Sales']
print(s)

数据分组正确如下图:

Genre     Year_of_Release
Action    1980.0               0.34
          1981.0              14.84
          1982.0               6.52
          1983.0               2.86
          1984.0               1.85
          1985.0               3.52
          1986.0              13.74
          1987.0               1.12
          1988.0               1.75
          1989.0               4.64
          1990.0               6.39
          1991.0               6.76
          1992.0               3.83
          1993.0               1.81
          1994.0               1.55
          1995.0               3.57
          1996.0              20.58
          1997.0              27.58
          1998.0              39.44
          1999.0              27.77
          2000.0              34.04
          2001.0              59.39
          2002.0              86.76
          2003.0              67.93
          2004.0              76.25
          2005.0              85.53
          2006.0              66.13
          2007.0             104.97
          2008.0             135.01
          2009.0             137.66
                              ...  
Sports    2013.0              41.23
          2014.0              45.10
          2015.0              40.90
          2016.0              23.53
Strategy  1991.0               0.94
          1992.0               0.37
          1993.0               0.81
          1994.0               3.56
          1995.0               6.51
          1996.0               5.61
          1997.0               7.71
          1998.0              13.46
          1999.0              18.45
          2000.0               8.52
          2001.0               7.55
          2002.0               5.56
          2003.0               7.99
          2004.0               7.16
          2005.0               5.31
          2006.0               4.22
          2007.0               9.26
          2008.0              11.55
          2009.0              12.36
          2010.0              13.77
          2011.0               8.84
          2012.0               3.27
          2013.0               6.09
          2014.0               0.99
          2015.0               1.84
          2016.0               1.15
Name: Global_Sales, dtype: float64

请告知我如何在一个图表中绘制所有类型的图表。谢谢。

【问题讨论】:

    标签: python python-2.7 pandas dataframe graph


    【解决方案1】:

    在pandas plot中,索引将绘制为x轴,每一列都单独绘制,因此您只需将系列转换为以Genre为列的数据框:

    ax = s.unstack('Genre').plot(kind = "line")
    

    【讨论】:

    • 非常感谢@Psidom!有效!有什么方法可以像你上面所说的那样增加图表的大小吗?再次感谢。
    • @GeraldBaretto,使用plot(..., figsize=(16,10))参数
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多