代码是这样:
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, k[-1] * x_data + b[-1], 'r')
plt.show()
plt.plot(epochs, losses, 'k')
plt.title('loss_change')
plt.xlabel('times')
plt.ylabel('loss')
plt.show()
到了展示图片的时候没有依次将两个图片展出,而是重叠到一起了:
这个问题应该怎么解决呀?
【以下回答由 GPT 生成】
问题的原因是在使用Matplotlib绘制图像时,两张图片都是使用plt.show()
函数展示的,所以在执行完第一段代码后,第一张图片展示出来后,第二段代码又立即执行展示了第二张图片,导致两张图片重叠在一起了。
解决方案如下:
代码如下:
import matplotlib.pyplot as plt
# 绘制第一张图片
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, k[-1] * x_data + b[-1], 'r.')
plt.show()
# 绘制第二张图片
plt.figure() # 创建一个新的画布
plt.plot(epochs, losses, 'k')
plt.title('loss_change')
plt.xlabel('times')
plt.ylabel('loss')
plt.show()
代码如下:
import matplotlib.pyplot as plt
# 绘制第一张图片
plt.subplot(2, 1, 1) # 创建一个2行1列的子图,并选择第一个子图来绘制
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, k[-1] * x_data + b[-1], 'r.')
# 绘制第二张图片
plt.subplot(2, 1, 2) # 选择第二个子图来绘制
plt.plot(epochs, losses, 'k')
plt.title('loss_change')
plt.xlabel('times')
plt.ylabel('loss')
plt.tight_layout() # 调整子图的布局,使得图片不重叠
plt.show()
以上两种方案,你可以根据自己的需要选择其中一种来解决问题。
【相关推荐】
可以用subplot 可参考:https://blog.csdn.net/chumingqian/article/details/126063755