Сюжет № наблюдения для категориальных групп - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть фрейм данных, который выглядит как -

id      age_bucket          state           gender       duration       category1        is_active
1         (40, 70]     Jammu and Kashmir      m             123           ABB                1
2         (17, 24]       West Bengal          m             72            ABB                0
3         (40, 70]         Bihar              f            109            CA                 0
4         (17, 24]         Bihar              f             52            CA                 1
5         (24, 30]         MP                 m             23            ACC                1
6         (24, 30]         AP                 m             103           ACC                1
7         (30, 40]         West Bengal        f             182           GF                 0

Я хочу создать гистограмму, показывающую, сколько людей активно для каждого age_bucket и состояния (топ-10). Для пола и категории1 я хочу создать круговую диаграмму с долей активных людей. В верхней части панели должно отображаться общее количество активных и неактивных членов, а также% должно отображаться на круговой диаграмме на основе is_active.

Как это сделать в python с использованием seaborn или matplotlib?

Я сделал до сих пор -

import seaborn as sns
%matplotlib inline 

sns.barplot(x='age_bucket',y='is_active',data=df)

sns.barplot(x='category1',y='is_active',data=df)

1 Ответ

0 голосов
/ 02 ноября 2019

Звучит так, будто вы хотите посчитать наблюдения, а не вычерчивать значение из столбца вдоль оси Yaxis. В seaborn для этого используется функция countplot():

sns.countplot('age_bucket', hue='is_active', data=df)

enter image description here

Поскольку возвращаемый объект является осью matplotlib, вы можете назначить егопеременная (например, ax), а затем используйте ax.annotate, чтобы вручную разместить текст на рисунке:

ax = sns.countplot('age_bucket', hue='is_active', data=df)
ax.annotate('1      1', (0, 1), ha='center', va='bottom', fontsize=12)

enter image description here

У Seaborn нет возможности создавать круговые диаграммы, поэтому вам нужно напрямую использовать matplotlib . Тем не менее, зачастую легче определить количество и пропорции по гистограммам, поэтому я обычно рекомендую придерживаться их, если у вас нет особых ограничений, которые заставляют вас использовать круговую диаграмму.

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