Как отобразить график подсчета морских вод и распечатать фрейм данных рядом в Python? - PullRequest
0 голосов
/ 19 июня 2020

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

sns.countplot("NAME_HOUSING_TYPE",data=applicationDF,hue="TARGET",palette=['g','r'])
plt.xticks(rotation=90)
plt.legend(labels = ['Repayer','Defaulter'])
plt.yscale('log')
plt.show()
g = applicationDF.groupby("TARGET")["NAME_HOUSING_TYPE"]
df1 = pd.concat([g.value_counts(),round(g.value_counts(normalize=True).mul(100),2)],axis=1, keys=('Counts','Percentage'))
print(df1)

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

введите описание изображения здесь

1 Ответ

0 голосов
/ 20 июня 2020

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

import seaborn as sns
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(20,4),dpi=144)
ax = fig.add_subplot(1,2,1)

ax = sns.barplot(x='NAME_HOUSING_TYPE', y='Counts', hue='TARGET', data=df)
ax.set_xticklabels(ax.get_xticklabels(), rotation=90)
ax.set_yscale('log')
ax.set_title('NAME_HOUSING_TYPE')
handles, labels = ax.get_legend_handles_labels()
labels = ['Repayer','Defaulter']
ax.legend(handles, labels, loc='upper right')

cell_text = [[251596,13104,10228,4280,2445,1033],[21272,1736,955,601,172,89]]
ax.table(cellText=cell_text,
         rowLabels=['Repayer','Defaulter'],
         colLabels=df_tbl.columns,
         loc='right',
         bbox=(1.1,0.0,1.0,1.0))

введите описание изображения здесь

...