簡體   English   中英

如何在 Python 中並排顯示 seaborn countplot 和打印 dataframe?

[英]How to show seaborn countplot and print dataframe side by side in Python?

我繪制了一個 seaborn 計數圖並在我的代碼中顯示了每個分類變量的值。 代碼如下:

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)

我得到以下 output,其中 df1 dataframe 打印在計數圖下方。 有沒有辦法並排顯示它們?

在此處輸入圖像描述

我查看了官方參考資料,通過反復試驗在圖表右側添加了一個表格。 無法從數據框中引用表數據,因此我手動創建了它。 不幸的是,我無法控制字體大小。

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))

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM