У меня есть метод, определенный ниже:
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 (), чтобы легенда распознала метки, которые я назначаю своим графикам?
РЕДАКТИРОВАТЬ: после пересмотра я замечаю, что мои данные незамышляя фигуру больше, либо.Значит ли это, что я не могу построить что-то таким образом?