#python #matplotlib #plot #jupyter-notebook
Вопрос:
Я пытаюсь построить 5 строк на графике в цикле for. На каждой итерации значения x и y добавляются в np.массив, а затем наносятся на рисунок. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу, чтобы все линии на одном графике, так как их значения x всегда одинаковы, но значения y будут меняться.
Вот как я это делаю:
for i in range (0,5):
for epoch in range(0, num_epochs):
x = np.append(x,epoch)
y = np.append(y,accuracy)
z = np.append(z, running_loss/j)
fig, axs = plt.subplots(2)
fig.suptitle('Model Evlauation')
axs[0].plot(x, y)
axs[1].plot(x, z)
axs[0].set_xlabel('Number of epochs')
axs[1].set_xlabel('Number of epochs')
axs[0].set_ylabel('Accuracy')
axs[1].set_ylabel('Loss')
fig.tight_layout(pad=2)
plt.show()
таким образом, я получаю 5 разных фигур, и каждая из них включает только одну строку:
Ответ №1:
Когда вы помещаете подзаголовки в цикл for, он каждый раз устанавливается заново. Так что вместо этого вы хотите:
fig, axs = plt.subplots(2)
for i in range (0,5):
for epoch in range(0, num_epochs):
x = np.append(x,epoch)
y = np.append(y,accuracy)
z = np.append(z, running_loss/j)
axs[0].plot(x, y)
axs[1].plot(x, z)
fig.suptitle('Model Evlauation')
axs[0].set_xlabel('Number of epochs')
axs[1].set_xlabel('Number of epochs')
axs[0].set_ylabel('Accuracy')
axs[1].set_ylabel('Loss')
fig.tight_layout(pad=2)
plt.show()
Комментарии:
1. Нет проблем! Я помню, что мне потребовалось некоторое время, прежде чем я понял подзаголовки и другие подобные вещи!