Создание столбчатой ​​диаграммы с накоплением с использованием групп (и суммы) - PullRequest
0 голосов
/ 01 мая 2019

Это уникально, так как я хочу, чтобы столбчатая диаграмма с накоплением отражала фактическое числовое значение, а не количество или размер в соответствии с примерами

У меня есть фрейм данных

## create Data frame
DF = pd.DataFrame({ 'name': 
['AA6','B7Y','CCY','AA6','B7Y','CCY','AA6','B7Y','CCY','AA6'],
                    'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1]})

Я хочу сгруппироватьимя

#Create a groupby object
gb=DF.groupby(['name', 'measure'])
gb.aggregate('sum')

enter image description here

И затем нанесите гистограмму трех категорий в имени (AA6, B7Y и CCY) с каждой из соответствующих 'мера 'значения сложены, и в том порядке, в котором они находятся (не в порядке возрастания, как они появляются выше)

Я пробовал это:

DF.groupby('name').plot(kind='bar', stacked=True)

Но он просто создает отдельные графики.

1 Ответ

0 голосов
/ 01 мая 2019

Если я понимаю, что вы спрашиваете:

df = pd.DataFrame({ 'name': ['AA6','B7Y','CCY','AA6','B7Y','CCY','AA6','B7Y','CCY','AA6'],
                    'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1]})

df.groupby(["name", "measure"])["measure"].sum().unstack().plot(kind="bar", stacked=True)

Stacked bar plot of dataframe values

Мы используем sum для поддержания размера measure на линейчатом графике.
Если вам не нужна легенда, добавьте legend=False к plot(...).

enter image description here

...