Создание матрицы участков с SNS distplot

голоса
0

Я черчение 20+ функции следующим образом:

for col in dsd_mod[ae_analysis].columns[:len(dsd_mod[ae_analysis].columns)]:
    if col != sae_flag:
        sns.distplot(dsd_mod[ae_analysis].loc[(dsd_mod[ae_analysis]['sae_flag'] == 1),col],
                color='r',
                kde=True,
                hist=False,
                label='sae_ae = 1')
        sns.distplot(dsd_mod[ae_analysis].loc[(dsd_mod[ae_analysis]['sae_flag'] == 0),col],
                color='y',
                kde=True,
                hist=False,
                label='sae_ae = 0') 

Который создает отдельный график для каждой функции. Как я могу поместить их все на матрице? Или как то, как пара выходов сюжетов?

Сейчас я получаю 30 графиков, как это все в одном столбце: введите

Как я могу изменить это так, что я могу получить 6 строк и 5 столбцов?

Заранее спасибо!

Задан 07/11/2018 в 20:07
источник пользователем
На других языках...                            


1 ответов

голоса
1

displotможно использовать любую ось объект, который вы хотите нарисовать сюжет. Таким образом, вы просто должны создать ось с заданной геометрией, и передать соответствующую ось для ваших функций.

fig, axs = plt.subplots(6,5)
# axs is a 2D array with shape (6,5)
# you can keep track of counters in your for-loop to place the resulting graphs
# using ax=axs[i,j]
# or an alternative is to use a generator that you can use to get the next axes
# instance at every step of the loop
ax_iter = iter(axs.flat)
for _ in range(30):
    ax = next(ax_iter)
    sns.distplot(np.random.normal(loc=0, size=(1000,)), ax=ax)
    sns.distplot(np.random.normal(loc=1, size=(1000,)), ax=ax)

введите описание изображения здесь

Ответил 07/11/2018 в 20:49
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more