2016-01-02 108 views
0

我有一個循環,我想創建三個子圖。下面是一些刪除了函數定義的代碼。如何在循環中添加子圖

n = 14 
dets = [] 
entropies = [] 

N = 1000 


fig = plt.figure() 

# The loop. 
for h in xrange(2,8,2): 
    for i in xrange(N): 
     A = (np.random.randint(2, size=(h,n)))*2-1 
     detA_Atranspose = np.linalg.det(np.dot(A, A.transpose())) 
     logdetA_Atranspose = math.log(detA_Atranspose + 1,2) 
     H = compute_entropy(A) 
     entropies.append(H) 
     dets.append(logdetA_Atranspose) 

    ax1 = fig.add_subplot(311) 
    ax1.plot(dets, entropies, 'ro') 

plt.show() 

但是,有一些我不知道該怎麼做。

  • 在上面的代碼,我需要在第二次迭代ax2 = fig.add_subplot(312) ax2.plot(dets, entropies, 'ro')ax3 = fig.add_subplot(313) ax3.plot(dets, entropies, 'ro')在第三創建三個子圖。我應該怎麼做?

回答

1

您可以使用plt.subplots,做一些這樣的:

fig, ax = plt.subplots(nrows = 3, ncols = 1) 

hs = [2,8,2] 

for p in xrange(3): 
    h = hs[p] 
    for i in xrange(N): 

     # skip other code 

    ax[p].plot(dets, entropies, 'ro')