2017-05-09 53 views
1

我有這個圖內循環,問題是,它爲每個迭代打開一個新的圖像,我的plt.clf()似乎沒有工作,我怎麼能解決這個問題?在Python中的循環中的3D圖形乾淨的圖像

plt.ion() 

for k in range(1,10): 

    for i in range(0,len(x)): 

     for j in range(0,len(x[i])-1): 

     plt.clf() 
     fig = plt.figure() 
     ax = fig.add_subplot(111, projection='3d') 
     ax.set_title('Iteration %s\n' % (str(k))) 
     ax.set_xlabel('X') 
     ax.set_ylabel('Y') 
     ax.set_zlabel('Z') 
     ax.set_xlim(-1, 1) 
     ax.set_ylim(-1, 1) 
     ax.set_zlim(-1, 1) 

     plt.show() 
     plt.pause(0.05) 

我躲在代碼,因爲我相信在一段代碼我貼在這裏

PS出現問題:我使用的是:

import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

回答

0

這裏的問題是設置每個fig = plt.figure()迭代,然後使用plt.gcf().clear()清理陰謀,你應該這樣做:

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

plt.ion() 

x = [[1,5],[2,4]] 
fig = plt.figure() 

for k in range(1,10): 

    for i in range(0,len(x)): 

     for j in range(0,len(x[i])-1):  

      ax = fig.add_subplot(111, projection='3d') 
      ax.set_title('Iteration %s\n' % (str(k))) 
      ax.set_xlabel('X') 
      ax.set_ylabel('Y') 
      ax.set_zlabel('Z') 
      ax.set_xlim(-1, 1) 
      ax.set_ylim(-1, 1) 
      ax.set_zlim(-1, 1) 
      plt.show() 
      plt.pause(0.5) 
      plt.gcf().clear() 
+0

同樣的問題... – QuestionsOverflow

+0

你介意顯示更多的代碼嗎?特別是'plt.show()' –

+0

循環我編輯了代碼請求,再次看問題 – QuestionsOverflow