【发布时间】:2019-05-15 19:32:54
【问题描述】:
我有以下代码使用 pandas 构建堆叠条形图:
dfTech = pd.DataFrame({'year':[2010,2011,2012,2013,2014,2015,2016,2017,2018],
'Other': [48.2,44.8,151.2,54.3,185,253.7,418.6,650,915],
'Graphcore':[0,0,0,0,0,0,30,80,200],
'Medopad Ltd':[0,0,0,0,0,0,0,0,120],
'BenevolentAI Limited': [0,0,0,0,0,0,0,0,115],
'Blippar.Com': [0,0,0,0,0,45,54,0,63],
'Draktrace': [0,0,0,0,0,40.5,65,75,50],
'The Hut Group Limited': [0,0,0,0,0,0,0,168.9,0]})
dfTech.loc[:,['Other', 'Graphcore', 'Medopad Ltd', 'BenevolentAI Limited',
'Blippar.Com', 'Darktrace',
'The Hut Group Limited']].plot.bar(stacked=True, figsize=(10,7))
这正是我想要的:
但是,我试图始终坚持使用我的代码的相同格式,即始终使用 matplotlib,并始终将 fig 和 axe 分开,即:
fig, ax = plt.subplots(figsize = (9,4.2), dpi = 120)
ax.bar(dfBar2['X'], dfBar2['value'], edgecolor = 'black',color = colors)
...
有没有一种简单的方法可以通过我的方法制作堆积条形图?我发现的示例最终使用了enumerate 或for 循环,这看起来太复杂了,肯定不是在matplotlib 中制作简单堆叠条形图的最佳方式(尤其是Pandas 将它放在一行中)?
【问题讨论】:
标签: python matplotlib