我有35个变量的列表,想绘制所有变量直方图以查看分布类型。

fig, axs = plt.subplots(6, 6)
for i in range(6):
    for j in range(6):
        for column in X.columns:
            axs[i,j] = sns.distplot(X[column], hist=True, kde=True,
               bins=int(180/5), color = 'darkblue',
               hist_kws={'edgecolor':'black'},
               kde_kws={'linewidth': 4})
            axs[i,j].set_title(column)


当前,它仅打印最后的第35个变量。

最佳答案

这个小的更改应该可以解决问题:

fig, axs = plt.subplots(6, 6)
for i in range(6):
    for j in range(6):
        if (i*6) + j > 33:
            break
        curr_column = X.columns[(i*6) + j]
        sns.distplot(X[curr_column], hist=True, kde=True,
                     ax=axs[i,j],
                     bins=int(180/5), color = 'darkblue',
                     hist_kws={'edgecolor':'black'},
                     kde_kws={'linewidth': 4})
        axs[i,j].set_title(curr_column)

关于python - 遍历数据框列并绘制所有变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58707832/

10-11 00:11