我正在尝试创建按列分组的 Dataframe 的distplot
data_plot = creditcard_df.copy()
amount = data_plot['Amount']
data_plot.drop(labels=['Amount'], axis=1, inplace = True)
data_plot.insert(0, 'Amount', amount)
# Plot the distributions of the features
columns = data_plot.iloc[:,0:30].columns
plt.figure(figsize=(12,30*4))
grids = gridspec.GridSpec(30, 1)
for grid, index in enumerate(data_plot[columns]):
ax = plt.subplot(grids[grid])
sns.distplot(data_plot[index][data_plot.Class == 1], hist=False, kde_kws={"shade": True}, bins=20)
sns.distplot(data_plot[index][data_plot.Class == 0], hist=False, kde_kws={"shade": True}, bins=20)
ax.set_xlabel("")
ax.set_title("Distribution of Column: " + str(index))
plt.show()
x1c 0d1x我尝试对y轴使用对数刻度,更改gridspec和figsize;但所有这些只会把分布弄得一团糟。有没有办法让图变得均匀呢?
1条答案
按热度按时间yjghlzjz1#
seaborn.distplot
已过时。请使用seaborn.kdeplot
,它是轴级绘图。否则,请使用seaborn.displot
进行图形级绘图。*在
python 3.8.11
、pandas 1.3.2
、matplotlib 3.4.2
、seaborn 0.11.2
中进行测试导入和测试数据
使用
seaborn.kdeplot
绘图使用
seaborn.displot
绘图