Составьте несколько гистограмм с морским рожком - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть фрейм данных с 36 столбцами. Я хочу построить гистограммы для каждого объекта за один раз (6x6), используя seaborn. В основном воспроизводит df.hist(), но с морским рожком. Мой код ниже показывает график только для первой функции, а все остальные пустые.

enter image description here

Тестовый фрейм данных:

df = pd.DataFrame(np.random.randint(0,100,size=(100, 36)), columns=range(0,36))

Мой код:

import seaborn as sns
# plot
f, axes = plt.subplots(6, 6, figsize=(20, 20), sharex=True)
for feature in df.columns:
    sns.distplot(df[feature] , color="skyblue", ax=axes[0, 0])

1 Ответ

0 голосов
/ 06 ноября 2018

Полагаю, было бы целесообразно одновременно переключаться между осями и элементами.

f, axes = plt.subplots(6, 6, figsize=(20, 20), sharex=True)
for ax, feature in zip(axes.flat, df.columns):
    sns.distplot(df[feature] , color="skyblue", ax=ax)

Массивы Numpy сглаживаются по строкам, т. Е. Вы получите первые 6 элементов в первом ряду, элементы с 6 по 11 во втором ряду и т. Д.

Если это не то, что вы хотите, вы можете определить индекс для массива осей вручную,

f, axes = plt.subplots(6, 6, figsize=(20, 20), sharex=True)
    for i, feature in enumerate(df.columns):
        sns.distplot(df[feature] , color="skyblue", ax=axes[i%6, i//6])

например. вышеизложенное будет заполнять столбцы столбцов за столбцом.

...