2012-12-05 46 views
3

我正在編寫一些處理操作2D/3D座標集的python函數,主要是2D。一步一步顯示2D/3D添加/刪除點

問題在於通過查看點來調試這樣的代碼變得困難。所以我正在尋找一些可以顯示點並顯示每個步驟後添加/刪除哪些點的軟件。基本上,我正在尋找把我的算法變成動畫。

我見過一些在線小程序,它的功能類似於我正在尋找的功能,但是我缺乏圖形/ GUI編程技能來編寫類似的東西,而且我不確定發送電子郵件最後修改時間戳記在幾年前閱讀的作​​者。我應該注意到,我並不反對在這個過程中學習一些圖形/ GUI編程,但如果它不能被幫助,我寧願不花費超過1-3天,儘管這樣的鏈接仍然值得讚賞。從這個意義上說,連接到一個寫作這樣一個一步一步的程序的指導網站可能是可以接受的。

+0

可能要做的最好的事情就是在每一步保存一個點表,然後將它們繪製成類似http://www.gnuplot.info的內容。 – Daniel

回答

2

隨着matplotlib庫,很容易獲得工作動畫。下面是一個最簡單的例子。該功能generate_data可以適應您的需求:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

def generate_data(): 
    X = np.arange(25) 
    Y = X**2 * np.random.rand(25) 
    return X,Y 

def update(data): 
    mat[0].set_xdata(data[0]) 
    mat[0].set_ydata(data[1]) 
    return mat 

def data_gen(): 
    while True: 
     yield generate_data() 

fig, ax = plt.subplots() 
X,Y = generate_data() 
mat = ax.plot(X,Y,'o') 
ani = animation.FuncAnimation(fig, update, data_gen, interval=500, 
           save_count=10) 

ani.save('animation.mp4') 
plt.show() 

enter image description here

這個例子是改編自previous answer和修改,以顯示線圖,而不是顏色表。

+0

呵呵,似乎我忽略了matplotlib API的動畫方面。似乎我會在一段時間內回顧一下。我之前正在繪製它們,但處理20個以上的彈出窗口是件痛苦的事情。 – Nuclearman

+0

@MC它是在matplotlib中做動畫的巨大痛苦。它還不如它可能的好,但新版本的matplotlib有一個更好的API – Hooked

+0

真的夠了,改進是好的。 – Nuclearman