Построение гистограммы Matplotlib одного столбца данных панд со средним значением другого, представленным точкой - PullRequest
0 голосов
/ 05 марта 2019

По сути, у них есть кадр данных pandas, который выглядит следующим образом:

d = {'Percentage' : [8,20,24,27, 58], 'Assets' : [10,12,53,32,11]}

df = pd.DataFrame(d)

Я хочу создать гистограмму столбца Percentage с частотой, с которой процент падает в bin, что я и сделал с:

bins = [0,25,50,75,100]

a = sns.FacetGrid(df)

a = a.map(plt.hist, "Percentage", bins=bins)

Но теперь я хочу наложить точку, представляющую средние активы корзины на гистограмме, что я не могу сделать.

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

РЕДАКТИРОВАТЬ: Уточнение того, что я имел в виду под бункерами

1 Ответ

0 голосов
/ 05 марта 2019

Гистограмма будет работать здесь, но я думаю, что проще вычислить ее самостоятельно и использовать гистограмму - учитывая, что вам также приходится иметь дело с Assets.

Идея в том, что вам нужноопределить, к какой ячейке принадлежит каждая точка данных.Затем вы можете сгруппировать по бин и среднее значение, чтобы рассчитать среднее значение Assets.Seaborn довольно хорошо справляется с этим:

df['bins'] = pd.cut(df['Percentage'], bins=bins)
df['count'] = 1

fig, ax1 = plt.subplots()
sns.barplot(data=df, x='bins', y='count', estimator=np.sum, ax=ax1)

ax2 = ax1.twinx()
sns.pointplot(data=df, x='bins', y='Assets', color='m', join=False, ci=None, ax=ax2)

enter image description here

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