【发布时间】:2020-03-31 15:37:24
【问题描述】:
我真的不明白这是怎么回事...我已经多次查看了非常简单的数据并重新启动了内核(在 Jupyter Notebook 上运行),但似乎没有任何解决办法。
这是我拥有的数据框(抱歉,我知道这些数字看起来有点傻,这是一个很长一段时间内非常稀疏的数据集,原始数据被重新索引了 20 年):
DATE NODP NVP VP VDP
03/08/2002 0.083623 0.10400659 0.81235517 1.52458E-05
14/09/2003 0.24669167 0.24806379 0.5052293 1.52458E-05
26/07/2005 0.15553726 0.13324796 0.7111538 0.000060983
20/05/2006 0 0.23 0.315 0.455
05/06/2007 0.21280034 0.29139224 0.49579217 1.52458E-05
21/02/2010 0 0.55502195 0.4449628 1.52458E-05
09/04/2011 0.09531311 0.17514162 0.72954527 0
14/02/2012 0.19213217 0.12866237 0.67920546 0
17/01/2014 0.12438848 0.10297326 0.77263826 0
24/02/2017 0.01541347 0.09897548 0.88561105 0
请注意,所有行加起来都是 1!我已经三重四重检查了这个...XD
我正在尝试使用以下代码生成此数据的堆积条形图,这似乎对我一直使用它的所有其他事情都非常有效:
NODP = df['NODP']
NVP = df['NVP']
VDP = df['VDP']
VP = df['VP']
ind = np.arange(len(df.index))
width = 5.0
p1 = plt.bar(ind, NODP, width, label = 'NODP', bottom=NVP, color= 'grey')
p2 = plt.bar(ind, NVP, width, label = 'NVP', bottom=VDP, color= 'tan')
p3 = plt.bar(ind, VDP, width, label = 'VDP', bottom=VP, color= 'darkorange')
p4 = plt.bar(ind, VP, width, label = 'VP', color= 'darkgreen')
plt.ylabel('Ratio')
plt.xlabel('Year')
plt.title('Ratio change',x=0.06,y=0.8)
plt.xticks(np.arange(min(ind), max(ind)+1, 6.0), labels=xlabels) #the xticks were cumbersome so not included in this example code
plt.legend()
这给了我以下情节:
很明显,1) NODP 根本没有出现,2) 其余部分的绘制比例错误......
我真的不明白哪里错了,应该很简单吧?!对不起,如果它真的很简单,它可能就在我的眼皮底下。任何想法都非常感谢!
【问题讨论】:
标签: python matplotlib bar-chart stacked