根据对每个条形图总和的贡献在条形图的条形上添加颜色

帕辛杜·萨马拉纳亚克

下图是一个数据框,显示了从每个大陆到一个国家的移民。如何通过对每个大陆使用不同的颜色来绘制显示每年总和的条形图,并在每个条形图上显示每个大陆的贡献?

到目前为止,我的代码如下:

df_continent = df_can.groupby('Continent').sum()
years = df_continent.columns.tolist() 

在此处输入图片说明

r-初学者

我没有您期望的输出的明确示例,但我相信您会发现第一个示例只是按大陆堆叠的年度移民人数图表。第二个示例是按年份划分的每个大陆的组成图示例。

import pandas as pd
import numpy as np
import io

data = '''
continent 1980 1981 1982 1983 1984
Africa 3951 4363 3819 2617 2639
Asiz 31025 34314 30214 24696 27274
Europe 39760 44802 42720 24638 22287
"Latin America" 13081 15215 16769 15427 13678
"Northern America" 9378 10030 9074 7100 6661
Oceania 1942 1839 1675 1018 878
'''

# df = pd.read_csv(io.StringIO(data), sep='\s+')
df = pd.read_csv(io.StringIO(data), delim_whitespace=True)
df.plot(x='continent', kind='bar', stacked=True)

在此处输入图片说明

百分比型

d = df[df.columns[1:]].div(df[df.columns[1:]].sum())
df1 = pd.concat([df[['continent']],d],1)
df1.set_index('continent', inplace=True)
df1
            1980    1981    1982    1983    1984
continent                   
Africa  0.039854    0.039462    0.036626    0.034664    0.035945
Asiz    0.312951    0.310357    0.289764    0.327117    0.371494
Europe  0.401061    0.405217    0.409702    0.326348    0.303567
Latin America   0.131949    0.137614    0.160821    0.204342    0.186306
Northern America    0.094596    0.090718    0.087023    0.094045    0.090728
Oceania 0.019589    0.016633    0.016064    0.013484    0.011959

df1.T.plot(kind='bar', stacked=True)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章