Python/Pandas将3个数据集组合成一个列图

2024-10-01 13:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在做基本的数据分析,当有3个数据集时,我正在努力创建一个柱状图。在

以下是我的数据:

datasetArgentina = {'Year': ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007","2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015","2016"], 'Mortality': ['11000', '10000' ,'10000' ,'10000' ,'10000' ,'9300' ,'8900' ,'8700', '9000' , '8600' ,'8300' ,'8100','7800' ,'8000', '7500', '7500', '7300']}

datasetColumbia = {'Year': ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007","2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015","2016"], 'Mortality': ['1500 ','1600', '1500' ,'1600' ,'1500', '1200' ,'1300', '1400' ,'1400', '1500' ,'1500' ,'1500' ,'1600' ,'1500', '1500', '1400', '1400']}

datasetBrazil = {'Year': ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007","2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015","2016"], 'Mortality': ['11000', '10000' ,'10000' ,'10000' ,'10000' ,'9300' ,'8900' ,'8700', '9000' , '8600' ,'8300' ,'8100','7800' ,'8000', '7500', '7500', '7300']}

有什么建议可以把这个转换成一个大的柱状图,并用不同的颜色显示这些国家?在

这是我在将数据集组合在一起并将其打印出来的拙劣尝试。在

^{pr2}$

任何帮助都会很好。在

输出:

df7   Mortality_x  Year Mortality_y
0        11000  2000       1500 
1        10000  2001        1600
2        10000  2002        1500
3        10000  2003        1600
4        10000  2004        1500
5         9300  2005        1200
6         8900  2006        1300
7         8700  2007        1400
8         9000  2008        1400
9         8600  2009        1500
10        8300  2010        1500
11        8100  2011        1500
12        7800  2012        1600
13        8000  2013        1500
14        7500  2014        1500
15        7500  2015        1400
16        7300  2016        1400
df8   Mortality  Year Mortality_x Mortality_y
0      11000  2000       11000       1500 
1      10000  2001       10000        1600
2      10000  2002       10000        1500
3      10000  2003       10000        1600
4      10000  2004       10000        1500
5       9300  2005        9300        1200
6       8900  2006        8900        1300
7       8700  2007        8700        1400
8       9000  2008        9000        1400
9       8600  2009        8600        1500
10      8300  2010        8300        1500
11      8100  2011        8100        1500
12      7800  2012        7800        1600
13      8000  2013        8000        1500
14      7500  2014        7500        1500
15      7500  2015        7500        1400
16      7300  2016        7300        1400

ArgBra


Tags: 数据颜色国家year建议集时柱状图pr2
2条回答

使用concat连接数据帧,然后使用groupby+plot按国家分组和绘制:

df = pd.concat(
       [df4, df5, df6], keys=['Argentina', 'Columbia', 'Brazil']
)

df.astype(int).groupby(level=0).plot.bar(x='Year', y='Mortality');
plt.show()

这将为每个组提供单独的绘图。在

可以将seabornfactorplot一起使用,如下所示:

import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

datasetArgentina = {'Year': ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007","2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015","2016"], 'Mortality': ['11000', '10000' ,'10000' ,'10000' ,'10000' ,'9300' ,'8900' ,'8700', '9000' , '8600' ,'8300' ,'8100','7800' ,'8000', '7500', '7500', '7300']}

datasetColumbia = {'Year': ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007","2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015","2016"], 'Mortality': ['1500 ','1600', '1500' ,'1600' ,'1500', '1200' ,'1300', '1400' ,'1400', '1500' ,'1500' ,'1500' ,'1600' ,'1500', '1500', '1400', '1400']}

datasetBrazil = {'Year': ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007","2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015","2016"], 'Mortality': ['11000', '10000' ,'10000' ,'10000' ,'10000' ,'9300' ,'8900' ,'8700', '9000' , '8600' ,'8300' ,'8100','7800' ,'8000', '7500', '7500', '7300']}


df4 = pd.DataFrame(datasetArgentina)
df5 = pd.DataFrame(datasetColumbia)
df6 = pd.DataFrame(datasetBrazil)

附加代码:

^{pr2}$

结果(有关更多信息,您可以查看seabornfactorplot):

result image

相关问题 更多 >