Pan*_*aaa 2 python matplotlib python-3.x pandas
我有一个 DataFrame 包含如下,其中第一行是“列”:
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
...
Run Code Online (Sandbox Code Playgroud)
我想画两个人物,第一个就像
第二个就像
我草稿中的数字可能比例不正确。我是 Python 的新手,我知道 Python 中的绘图功能非常强大。我相信一定很容易绘制出这样的数字。
Pandas 库提供了简单高效的工具来分析和绘制数据帧。
考虑到 pandas 库已安装并且数据位于.csv文件中(与您提供的示例相匹配)。
import pandas as pd
data = pd.read_csv('filename.csv')
Run Code Online (Sandbox Code Playgroud)
您现在拥有一个 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
Run Code Online (Sandbox Code Playgroud)
这可以通过以下方式轻松实现:
data.plot('type', 'sale', kind='bar')
Run Code Online (Sandbox Code Playgroud)
这导致
如果您希望对每种类型的销售额进行求和,data.groupby('type').sum().plot(y='sale', kind='bar')就可以了(请参阅#3 进行解释)
这基本上是相同的命令,只是您必须首先使用 pandas 函数对同一年的所有销售进行求和groupby。
data.groupby('year').sum().plot(y='sale', kind='bar')
Run Code Online (Sandbox Code Playgroud)
这将导致
编辑:
您还可以通过对 2 个变量使用 groupby 来取消每年每个柱的不同“类型”
data.groupby(['year', 'type']).sum().unstack().plot(y='sale', kind='bar', stacked=True)
Run Code Online (Sandbox Code Playgroud)
有关实现所需布局的更多信息,请参阅有关可视化的 Pandas 文档。
| 归档时间: |
|
| 查看次数: |
8567 次 |
| 最近记录: |