Я пытаюсь воспроизвести такую диаграмму:

Итак, гистограмма с несколькими столбцами с накоплением и с несколькими столбцами.
Ближе всего я подхожу к этому коду:
import matplotlib.pyplot as plt
fooMeans = (20, 35, 30, 35, 27)
barMeans = (25, 32, 34, 20, 25)
ind = list(range(len(fooMeans)))
p1 = plt.bar(ind, barMeans, align='edge', width= 0.4)
p2 = plt.bar(ind, fooMeans, align='edge', width= 0.2)
p3 = plt.bar(ind, barMeans, bottom=fooMeans, align='edge', width= 0.2)
p4 = plt.bar(ind, fooMeans, align='edge', width= -0.2)
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
plt.yticks(range(0, 81, 10))
plt.legend((p1[0], p2[0], p3[0], p4[0]), ('Foo', 'Bar','Fii', 'Fuu'))
plt.savefig('foo.png', bbox_inches='tight')
Что рисует это:

Это не так уж и плохо, но галочки x не выровнены (возможно, из-за align = 'edge' бара) и трюка ширины, который я использую, чтобы показать панель рядом друг с другом (а не рисовать всю панель один поверх другого) вроде как взломать, есть ли по книгам способ сделать это?