Инвертировать сложенные столбики в matplotlib

#python #matplotlib #bar-chart

Вопрос:

Я хотел бы изменить положение цветов на гистограмме ниже.

Вот часть кода, используемого для создания диаграммы :

 ax.bar(date,caloric_intake, width=0.4)
ax.bar(date,exercice_deficit,width=0.4,bottom=caloric_intake )
 

Я пробовал использовать нижний аргумент, но результирующие бары на графике становятся выше.
как видно на этом рисунке

Кто-нибудь знает, как это исправить ? Заранее спасибо.

Ответ №1:

Я не вижу вашего кода. но в этом примере, какой параметр «ax.bar» на первом графике в верхней части сложенных столбиков, см. Ниже:

 import matplotlib.pyplot as plt


labels = ['G1', 'G2', 'G3', 'G4', 'G5']
men_means = [20, 35, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
men_std = [2, 3, 4, 1, 2]
women_std = [3, 5, 2, 3, 3]
width = 0.35 

fig, ax = plt.subplots()

ax.bar(labels, women_means, width, yerr=women_std, bottom=men_means,label='Women')
ax.bar(labels, men_means, width, yerr=men_std, label='Men')


ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.legend()

plt.show()
 

выход:

введите описание изображения здесь

 import matplotlib.pyplot as plt


labels = ['G1', 'G2', 'G3', 'G4', 'G5']
men_means = [20, 35, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
men_std = [2, 3, 4, 1, 2]
women_std = [3, 5, 2, 3, 3]
width = 0.35 

fig, ax = plt.subplots()

ax.bar(labels, men_means, width, yerr=men_std, label='Men')
ax.bar(labels, women_means, width, yerr=women_std, bottom=men_means,label='Women')


ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.legend()

plt.show()
 

выход:

введите описание изображения здесь

Комментарии:

1. Да, извините, код, соответствующий второму изображению : ax.bar(date,exercice_deficit,width=0.4,bottom=caloric_intake ) ax.bar(date,caloric_intake, width=0.4) я попытался переключить линии, но общая высота полос все еще выше по сравнению с первой картинкой