我正在使用pandas和seaborn制作一些EDA,这是我必须绘制一组特征的直方图的代码:
skewed_data = pd.DataFrame.skew(data)
skewed_features =skewed_data.index
fig, axs = plt.subplots(ncols=len(skewed_features))
plt.ticklabel_format(style='sci', axis='both', scilimits=(0,0))
for i,skewed_feature in enumerate(skewed_features):
g = sns.distplot(data[column])
sns.distplot(data[skewed_feature], ax=axs[i])
这是我得到的结果:
不可读,我该如何避免这个问题?
答案 0 :(得分:1)
我知道你对这些数字的布局感到担忧。但是,您需要首先确定如何表示您的数据。以下是您的案例的两种选择
(1)一个图中的多行和
(2)多个子图2x2,每个子图绘制一行。
我对searborn不是很熟悉,但是searborn的阴谋是基于matplotlib。我可以给你一些基本的想法。
要归档(1),您可以先声明图形和斧头,然后将所有线条添加到此斧头。示例代码:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# YOUR LOOP, use the ax parameter
for i in range(3)
sns.distplot(data[i], ax=ax)
归档(2),与上面相同,但使用不同的数字子图,并将您的行放在不同的子图中。
# Four subplots, 2x2
fig, axarr = plt.subplots(2,2)
# YOUR LOOP, use different cell
您可以查看matplotlib subplots demo。做一个好的可视化是一项非常艰苦的工作。有很多文件需要阅读。检查matplotlib或seaborn的图库是了解如何实施某些可视化的好方法。
感谢。