Python中绘制条形图的一种简便方法

Python中绘制条形图的一种简便方法,python,python-3.x,matplotlib,seaborn,Python,Python 3.x,Matplotlib,Seaborn,我有一个DataFrame包含如下内容,其中第一行是“列”: 我想画两个数字,第一个是 第二个是 我的草稿中的数字可能比例不对。我是Python的新手,我了解Python的绘图功能非常强大。我相信绘制这样的图形一定很容易。提供了简单有效的工具来分析和绘制数据帧 考虑到pandas库已安装且数据位于.csv文件中(与您提供的示例相匹配) 1.导入pandas库并加载数据 现在,您有了一个熊猫数据帧,如下所示: id year type sale 0 1 1998 a

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

我想画两个数字,第一个是

第二个是

我的草稿中的数字可能比例不对。我是Python的新手,我了解Python的绘图功能非常强大。我相信绘制这样的图形一定很容易。

提供了简单有效的工具来分析和绘制数据帧

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

1.导入pandas库并加载数据 现在,您有了一个熊猫数据帧,如下所示:

    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.绘制“销售”与“类型”的对比图 这很容易通过以下方式实现:

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

如果您希望对每种类型的销售额进行求和,
data.groupby('type').sum().plot(y='sale',kind='bar')
将完成此操作(有关说明,请参见第3页)

3.绘制“销售”与“年度”的对比图 这基本上是相同的命令,只是您必须首先使用pandas函数对同一年的所有销售额求和

data.groupby('year').sum().plot(y='sale', kind='bar')
这将导致

编辑:

4每年取消堆叠不同的类型 您还可以使用groupby对2个变量每年为每个条形图取消堆叠不同的“类型”

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

注:
有关实现所需布局的更多信息,请参阅。

非常感谢您指出groupby函数!我应该在绘图中的何处添加排序功能(按销售额)?我尝试对数据进行排序,然后将其保存到临时数据框中,但我认为必须有一个简单的方法…您能告诉我更多关于如何实现第二个布局的信息吗?我试着用两个groupby并添加“stack”选项,但我觉得我走错了方向…我试着做的是,df.groupby(['year','type']).sum().plot(x='year',y='sale',kind='bar',stacked=True)。。。我没有具体的想法,非常感谢你的帮助@是的,你在正确的轨道上。请参阅我的答案的编辑。非常感谢您的帮助!我正在阅读关于数据帧取消堆栈和数据透视的文档我喜欢你的潦草的图表。。。你有代码吗:)?
data.groupby('year').sum().plot(y='sale', kind='bar')
data.groupby(['year', 'type']).sum().unstack().plot(y='sale', kind='bar', stacked=True)