在Python pandas中绘制条形图的便捷方法

时间:2016-10-29 03:51:47

标签: python python-3.x matplotlib seaborn

我有一个DataFrame包含如下,其中第一行是“columns”:

id,year,type,sale  
1,1998,a,5  
2,2000,b,10  
3,1999,c,20  
4,2001,b,15  
5,2001,a,25  
6,1998,b,5  
...

我想绘制两个数字,第一个就像是

enter image description here

第二个就像

enter image description here

我的草稿中的数字可能不合适。我是Python的新手,我理解绘图功能在Python中很强大。我相信必须很容易绘制这些数字。

1 个答案:

答案 0 :(得分:1)

Pandas library提供了简单有效的工具来分析和绘制DataFrame。

考虑到已安装pandas库并且数据位于.csv文件中(与您提供的示例相匹配)。

1。导入pandas库并加载数据

import pandas as pd

data = pd.read_csv('filename.csv')

您现在拥有一个Pandas Dataframe,如下所示:

    id  year  type  sale
0   1   1998    a   5
1   2   2000    b   10
2   3   1999    c   20
3   4   2001    b   15
4   5   2001    a   25
5   6   1998    b   5

2。绘制"销售" vs"键入"

这可以通过以下方式轻松实现:

data.plot('type', 'sale', kind='bar')

导致

image1

如果您希望对每种类型的销售进行求和,data.groupby('type').sum().plot(y='sale', kind='bar')将会有所帮助(请参阅#3以获得解释)

3。绘制"销售" vs"年"

这基本上是相同的命令,除了您必须首先使用groupby pandas功能在同一年对所有销售进行总结。

data.groupby('year').sum().plot(y='sale', kind='bar')

这将导致

image2

编辑:

4每年拆除不同类型

你也可以将不同的'类型'通过在2个变量上使用groupby来每个条形图每年

data.groupby(['year', 'type']).sum().unstack().plot(y='sale', kind='bar', stacked=True)

enter image description here

注意:

有关实现所需布局的详细信息,请参阅Pandas Documentation on visualization