Как объединить графики, сгенерированные в пределах al oop, в виде вспомогательных участков в одну большую фигуру - PullRequest
1 голос
/ 31 марта 2020

У меня есть код, который строит графики в al oop один за другим. Но их неудобно анализировать. Я хотел бы построить графики по два в ряд. Как мне изменить код?

for cat in test.category_doubled.unique():
    plt.figure(figsize=(8,5))
    y = test.best_channels[test.category_doubled == cat].values
    plt.scatter(
        test.signal[test.category_doubled == cat].values,
        test['shift'][test.category_doubled == cat].values,
        c=y,
        s=20,
        label=f'cat_num:_{cat}___claster_num:_{len(np.unique(y))}'
    )
    plt.legend()

1 Ответ

1 голос
/ 31 марта 2020

Редактировать: Обновлен код в соответствии с комментарием ОП ниже.

Вы можете настроить субплоты на одной фигуре из n строк с двумя субплотами на строку с помощью plt.subplot(n, 2, i), где i - счетчик субплота. Таким образом, для одной фигуры с 6 x 2 подсюжетами мы можем сделать это:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [15, 35] 

for idx, cat in enumerate(test.category_doubled.unique()): 

    plt.subplot(6, 2, idx + 1) 

    y = test.best_channels[test.category_doubled == cat].values 
    plt.scatter(
        test.signal[test.category_doubled == cat].values, 
        test['shift'][test.category_doubled == cat].values, 
        c=y, s=20, 
        label=f'cat_num:_{cat}___claster_num:_{len(np.unique(y))}' 
    ) 
    plt.legend()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...