Сюжет, который вы пробуете, представляет собой сложенный гистограмма. Вот пример столбчатой диаграммы с накоплением в процентах.
In [37]: import numpy as np
...: import matplotlib.pyplot as plt
...: #Get values from the group and categories
...: quarter = ["Q1", "Q2", "Q3", "Q4"]
...: mercedes = [75, 65, 16, 45]
...: audi = [15, 10, 27, 25]
...: lexus = [10, 25, 57, 30]
...:
...: #add colors
...: colors = ['#C70039', '#00BFFF','#FFC300','#DAF7A6','#FFDEAD']
...: # The position of the bars on the x-axis
...: r = range(len(quarter))
...: barWidth = 1
...: #plot bars
...: plt.figure(figsize=(10,7))
...: ax1 = plt.bar(r, mercedes, color=colors[0], edgecolor='white', width=barWidth, label="mercedes")
...: ax2 = plt.bar(r, audi, bottom=np.array(mercedes), color=colors[1], edgecolor='white', width=barWidth, label='audi')
...: ax3 = plt.bar(r, lexus, bottom=np.array(mercedes)+np.array(audi), color=colors[2], edgecolor='white', width=barWidth, label='lexus')
...: plt.legend()
...: # Custom X axis
...: plt.xticks(r, quarter, fontweight='bold')
...: plt.ylabel("sales")
...: for r1, r2, r3 in zip(ax1, ax2, ax3):
...: h1 = r1.get_height()
...: h2 = r2.get_height()
...: h3 = r3.get_height()
...: plt.text(r1.get_x() + r1.get_width() / 2., h1 / 2., "%.0f%%" % h1, ha="center", va="center", color="white", fontsize=16, fontweight="bold")
...: plt.text(r2.get_x() + r2.get_width() / 2., h1 + h2 / 2., "%.0f%%" % h2, ha="center", va="center", color="white", fontsize=16, fontweight="bold")
...: plt.text(r3.get_x() + r3.get_width() / 2., h1 + h2 + h3 / 2., "%0.f%%" % h3, ha="center", va="center", color="white", fontsize=16, fontweight="bold")
...: plt.savefig("stacked2.png")
...: plt.show()
Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
Обновление : на основе комментария, если вам нужна столбчатая диаграмма с одинаковой высотой, преобразуйте записи в проценты, тогда все стержни будут одинаковой высоты.