Matplotlib-为什么将图形保存两次?

时间:2019-01-01 16:06:06

标签: python matplotlib figure

我正尝试使用Matplotlib绘制并保存图形,如下所示:

plt.plot(number_of_epochs, accuracy, 'r', label='Training accuracy')
plt.plot(number_of_epochs, val_acc, 'b', label='Validation accuracy')
plt.title('Training and validation accuracy')
plt.legend()
plt.savefig('accuracy.png')

plt.plot(number_of_epochs, loss, 'r', label='Training loss')
plt.plot(number_of_epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.legend()
plt.savefig('loss.png')

第一个数字accuracy.png保存良好。但是,对于loss.png,它同时包含精度图和损耗图。在后一种情况下,如何仅保留loss.png数字?

谢谢。

2 个答案:

答案 0 :(得分:1)

只需在两个图之间添加plt.figure()。它可以帮助您绘制新图形,而不是在上一个图形上绘制。如果您不想使用第一个数字,请使用plt.close()

尝试一下

plt.plot(number_of_epochs, accuracy, 'r', label='Training accuracy')
plt.plot(number_of_epochs, val_acc, 'b', label='Validation accuracy')
plt.title('Training and validation accuracy')
plt.legend()
plt.savefig('accuracy.png')

plt.figure()
plt.plot(number_of_epochs, loss, 'r', label='Training loss')
plt.plot(number_of_epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.legend()
plt.savefig('loss.png')

答案 1 :(得分:1)

在第二次绘图之前使用plt.close()即可完成工作。