Python 调用plt.show()后,如何保持上一个绘图而不清除图形,而不只是重复调用? 导入matplotlib.pyplot作为plt 将numpy作为np导入 x=np.linspace(0,2*np.pi,100) 平面图(x,np.sin(x)) plt.show() 平面图(x,np.cos(x)) plt.show()

Python 调用plt.show()后,如何保持上一个绘图而不清除图形,而不只是重复调用? 导入matplotlib.pyplot作为plt 将numpy作为np导入 x=np.linspace(0,2*np.pi,100) 平面图(x,np.sin(x)) plt.show() 平面图(x,np.cos(x)) plt.show(),python,numpy,matplotlib,plot,Python,Numpy,Matplotlib,Plot,此示例在两个窗口中生成两个连续的绘图,首先是左侧的绘图,然后是右侧的绘图: 正如你所看到的,正弦消失了,只有余弦出现在第二个窗口中;打印窗口已被清除。然而,这正是我想要的: 导入matplotlib.pyplot作为plt 将numpy作为np导入 x=np.linspace(0,2*np.pi,100) 平面图(x,np.sin(x)) plt.show() 平面图(x,np.sin(x)) 平面图(x,np.cos(x)) plt.show() 如何保持上一个绘图,使其也显示在第二个绘

此示例在两个窗口中生成两个连续的绘图,首先是左侧的绘图,然后是右侧的绘图:

正如你所看到的,正弦消失了,只有余弦出现在第二个窗口中;打印窗口已被清除。然而,这正是我想要的:

导入matplotlib.pyplot作为plt
将numpy作为np导入
x=np.linspace(0,2*np.pi,100)
平面图(x,np.sin(x))
plt.show()
平面图(x,np.sin(x))
平面图(x,np.cos(x))
plt.show()

如何保持上一个绘图,使其也显示在第二个绘图中?除了简单地重复以前对
plt.plot

(a)重复以前对
plt.plot
的调用外,必须有更好的方法:正如问题中所述,在添加新的绘图之前,可以重复以前创建绘图的调用。对于简单的情况,这可能是最简单的解决方案

导入matplotlib.pyplot作为plt
将numpy作为np导入
x=np.linspace(0,2*np.pi,100)
平面图(x,np.sin(x))
plt.show()
平面图(x,np.sin(x))
平面图(x,np.cos(x))
plt.show()
(B)使用
plt.waitforbuttonpress
:如果这适用于您的情况,您可以使用
plt.waitforbuttonpress
作为绘图之间的中断,等待鼠标单击或按键,直到下一个绘图添加到同一窗口中

导入matplotlib.pyplot作为plt
将numpy作为np导入
x=np.linspace(0,2*np.pi,100)
对于[np.sin,np.cos]中的f:
平面图(x,f(x))
plt.waitforbuttonpress()
(C)在
plt.show
之前对绘图进行Pickle处理:我不知道这对复杂绘图的效果如何,但似乎可以在调用
plt.show
之前对绘图进行Pickle处理,但之后会立即恢复。然后,可以在下次调用
plt.show
之前添加额外的绘图

导入matplotlib.pyplot作为plt
将numpy作为np导入
进口泡菜
x=np.linspace(0,2*np.pi,100)
ax=plt.gca()
对于[np.sin,np.cos]中的f:
平面图(x,f(x))
温度=酸洗转储(ax)
plt.show()
ax=酸洗负荷(温度)
(D)操纵图形管理器和画布:基本上,图形
fig
为每个循环迭代“加载”到新创建的图形中,然后使用新的绘图进行更新

导入matplotlib.pyplot作为plt
将numpy作为np导入
x=np.linspace(0,2*np.pi,100)
图=plt.图()
plt.close()
对于[np.sin,np.cos]中的f:
plt.图()
fm=plt.get\u current\u fig\u manager()
fm.canvas.figure=图
图canvas=fm.canvas
平面图(x,f(x))
plt.show()
plt.close()

我已经在下面发布了我相当不满意的尝试。。。仍在寻找更好的解决方案。