Как создать гистограмму Stacked Bar в matplotlib, как в ggplot - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь визуализировать возраст и доход из набора данных UCI Adult Income, используя составную полосу в matplotlib.К сожалению, результаты оказались не такими, как я ожидал.

В R код выглядит примерно так:

library(ggplot2)
ggplot(adult, aes(age)) + geom_histogram(aes(fill = income), color = "black",binwidth = 1)

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

stacked

Я использовал этот код:

plt.figure(figsize=(16, 8))
plt.hist(adult.age, bins=10, normed=None, histtype='bar', stacked=True)
plt.show()

Не могли бы вы, ребята, указать, где я был не прав?

Спасибо

1 Ответ

0 голосов
/ 25 сентября 2019

IIUC, вы хотите группировать по pd.cut, затем счетчик значений:

# toy data
df = pd.DataFrame({'age':np.random.normal(50,15,1000),
                   'income':np.random.normal(5e4, 1e4, 1000)})

(df['income'].gt(5e4)
 .groupby(pd.cut(df.age, bins=range(20,80)))
 .value_counts()
 .unstack(-1)
 .plot.bar(stacked=True)
)

Выход:

enter image description here

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