2016-01-07 35 views
0

由於我的代碼相當長(對於newy而言是典型的),我在這裏放置了一個簡化的問題示例。 從這段代碼中,我們只得到最後一個,而不是獲得圖1中所有環路的數據的子圖。我會很樂意幫助我理解我的錯誤。Python Matplotlib:迭代(用for循環)在兩個圖上創建多個圖,其中一個圖是共享y軸的子圖

from numpy import * 
from matplotlib.pyplot import * 
import math 
from pylab import * 

i=0 


for i in range (0,10): 
    x=[i-1, i, i+1] 
    y=[3*i, 3*i, 3*i] 
    x1=[2-i, 3-i, 4-i] 
    y1=[i, i ,i] 
    plt.figure(1) 
    f,(ax1, ax2) = plt.subplots(1, 2, sharey=True) 
    ax1.plot(x,y) 
    ax2.plot(x1,y1) 

    if i==9: 
     plt.savefig('test.jpg') 
     plt.clf() 

    plt.figure(7) 
    plt.scatter(x1,y) 
    if i==9: 

     plt.savefig('test2.jpg') 

回答

1

在循環外部創建figure,而不是在每次迭代中重新創建它。

您可能需要將第二個圖繪製到自己的循環中,或者在循環外部創建第二個figure並指定您的後續調用適用於哪個。