使用matplotlib,同时在多个figure画图

使用场景:

我们使用matplotlib时,一次只在一个figure中画图,画完一个figure,然后创建另一个figure,再在新figure中画图。

这是我们如果想重新在旧的figure中画图,该如何做呢?本文就是为了解决这个需求。

方法

其实我们使用maplotlib的plot也好,imshow也好,这些画图方法其实并不是在figure中画图,而是在axes上画图。因此我们只需要保存旧的axes,然后当需要在旧的axes上画图时,将旧的axes置为当前axes。

import matplotlib.pyplot as plt

plt.figure()  
ax1 = plt.gca()   # 保存当前的axes

#  在ax1上画图
plt.plot(...) 
plt.imshow(...)  


plt.figure()  
ax2 = plt.gca()    # 保存当前的axes

#  在ax2上画图
plt.plot(...) 
plt.imshow(...) 


plt.sca(ax1)   # 将ax1置为当前axes

#  在ax1上画图
plt.plot(...) 
plt.imshow(...)  

plt.sca(ax2)     # 将ax2置为当前axes

#  在ax2上画图
plt.plot(...) 
plt.imshow(...) 

你可能感兴趣的:(python,matplotlib,python,figure,切换不同画布,plot)