столбчатая диаграмма Python с использованием категориальных данных - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть кадр данных Pandas (1800 obs), который выглядит примерно так:

      A      B      C      D
 1   CL0    CL1    CL2    CL0
 2   CL2    CL1    CL1    CL3
 3   CL3    CL2    CL0    CL1
 .   ...    ...    ...    ...
 .   ...    ...    ...    ...
 n   CL2    CL1    CL0    CL3

Я хочу создать гистограмму с накоплением, которая будет иметь столбцы «A», «B», «C», «D» на оси x и процентное содержание каждого уровня в этом объекте на оси y. Что-то вроде рисунка ниже.

Полагаю, мне нужно как-то табулировать данные? Но я не знаю, как это сделать.

enter image description here

1 Ответ

0 голосов
/ 29 апреля 2018
print(df)

Выход:

     A    B    C    D
1  CL0  CL1  CL2  CL0
2  CL2  CL1  CL1  CL3
3  CL3  CL2  CL0  CL1

Использование .apply ()

counts = df.apply(lambda x: x.value_counts() / len(x)).transpose()
fig = plt.figure()
ax = fig.add_subplot(111)
counts.plot(ax=ax,kind='bar', stacked=True, rot=0)
vals = ax.get_yticks()
ax.set_yticklabels(['{:3.2f}%'.format(x*100) for x in vals])
ax.yaxis.grid(True)
ax.set_axisbelow(True)
plt.show()

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...