我有以下数据框:
land_cover canopy_cat count tc_density_cor
0 20 1 56 35.760967
1 20 2 28 35.760967
2 20 3 11 35.760967
3 20 4 9 35.760967
4 20 5 4 35.760967
5 20 6 3 35.760967
6 20 7 3 35.760967
7 20 8 1 35.760967
8 20 9 4 35.760967
9 20 10 6 35.760967
10 20 11 2 35.760967
11 30 1 194 17.408260
12 30 2 86 17.408260
13 30 3 55 17.408260
14 30 4 36 17.408260
15 30 5 21 17.408260
16 30 6 15 17.408260
17 30 7 9 17.408260
18 30 8 6 17.408260
19 30 9 19 17.408260
20 30 10 14 17.408260
21 30 11 9 17.408260
22 40 1 106 17.458283
23 40 2 45 17.458283
24 40 3 19 17.458283
25 40 4 14 17.458283
26 40 5 9 17.458283
27 40 6 8 17.458283
28 40 7 5 17.458283
29 40 8 5 17.458283
30 40 9 8 17.458283
31 40 10 12 17.458283
32 40 11 3 17.458283
我想将数据绘制为堆积条形图:
x轴= land_cover
y轴=每个树冠的数量
我认为枢纽功能是我想要的。但是,在我想要相对于“ tc_density_cor”相对于每个land_cover的“计数”列进行规范化之前。
例如,land_cover = 20的“计数”总和= 127。
127 / 35.76 = 56 / x->新值将是:15.76
我怎样才能做到这一点?? :)
最佳答案
我认为您需要:
df['Count Per Canopy Cat'] = (df['count'] * df['tc_density_cor'] /
df.groupby('land_cover')['count'].transform(sum))
df.pivot('land_cover',
'canopy_cat',
'Count Per Canopy Cat')\
.plot.bar(stacked=True, figsize=(15,8))
图表:
关于python - 使用python/pandas将数据标准化并绘制为堆叠的条形图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51747539/