Проблема в for col in cols:
, когда вы просматриваете все столбцы для каждого подзаговора.Вместо этого вам нужно построить один столбец за раз в одном вспомогательном участке.Для этого можно использовать индекс i
и постоянно обновлять его, пока вы просматриваете циклы.Ниже приведен ответ:
import seaborn as sns
df = sns.load_dataset('iris')
cols = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
# plotting
fig, ax = plt.subplots(2,2, figsize=(8, 6))
i = 0
for ax_row in range(2):
for ax_col in range(2):
ax_ = sns.distplot(df[cols[i]], ax=ax[ax_row][ax_col])
i += 1
plt.tight_layout()
РЕДАКТИРОВАТЬ: Использование enumerate
fig, ax = plt.subplots(2,2, figsize=(8, 6))
for i, axis in enumerate(ax.flatten()):
ax_ = sns.distplot(df[cols[i]], ax=axis)
plt.tight_layout()
РЕДАКТИРОВАНИЕ 2: Использование enumerate
на cols
fig, axes = plt.subplots(2,2, figsize=(8, 6))
for i, col in enumerate(cols):
ax_ = sns.distplot(df[col], ax=axes.flatten()[i])
plt.tight_layout()
![enter image description here](https://i.stack.imgur.com/s91QL.png)