Вызов axes.plot в отдельном методе от plt.figure () и plt.figlegend, метки не найдены - PullRequest
0 голосов
/ 28 октября 2018

У меня есть метод, определенный ниже:

def plot_epoch_data(stationary_axis, moving_axis, data, label, color, moving_window_size):
    stationary_axis.plot(y=data, color=color, label=label)
    length = len(data)
    x = 0
    if label=='Validation':
        x = length - 1
    if length > 0:
        last_val = data[length-1]
        moving_axis.text(x=x, y=last_val, s="{0:.2f}".format(last_val), color=color)
        x_axis = [i for i in range(moving_window_size)]
        if length > moving_window_size:
            x_axis = [i + (length-moving_window_size) for i in x_axis]
        moving_axis.plot(x=x_axis, y=data[-moving_window_size:], color=color, label=label)
    return stationary_axis, moving_axis

И затем в другой части моего кода я инициализирую фигуру plt и объявляю несколько осей, каждая из которых передается методу выше, например:

plt.figure()
# moving_window_size, training_losses, first_row_split, etc defined elsewhere...

ax_loss = plt.subplot2grid((4, batch_y.shape[3]), (0, batch_y.shape[3]-(first_row_split)),
                                       colspan=first_row_split)
ax_loss_move = plt.subplot2grid((4, batch_y.shape[3]), (1, batch_y.shape[3]-(first_row_split)),
                                            colspan=first_row_split)
plot_epoch_data(stationary_axis=ax_loss, moving_axis=ax_loss_move, data=training_losses, label='Training', color=training_color, moving_window_size=moving_window_size)

и после вызова функции я создаю легенду для фигуры:

plt.figlegend(loc='upper right')

Но затем во время работы я получаю ошибку:

UserWarning: No labeled objects found. Use label='...' kwarg on individual plots.

Я не получаю эту ошибку, если вместо этого пишу содержимое plot_epoch_data () в своем основном методе, но я использую несколько разных наборов данных и хочу общий вызов метода.Есть ли что-то, из чего я могу вернуться или передать в plot_epoch_data (), чтобы легенда распознала метки, которые я назначаю своим графикам?

РЕДАКТИРОВАТЬ: после пересмотра я замечаю, что мои данные незамышляя фигуру больше, либо.Значит ли это, что я не могу построить что-то таким образом?

...