2015-08-28 90 views
1

我正在從不固定的時間間隔從傳感器獲取數據。當它完成90幀我想繪製它。我正在添加矩形修補程序。我無法更新數字。 我想我不能使用Funcanimation,因爲我沒有固定的時間間隔。如何以非均勻間隔更新matplotlib

我想在我打電話時做一個功能,它會更新數字。

我做了一個臨時函數,它應該在一個while循環後更新,但它沒有。

import matplotlib.pyplot as plt 
import matplotlib.patches as patches 
import numpy as np 
import pylab 
from random import randint 

def arsplot(rho,phi,wid,height): 

    for i in range(len(rho)): 

     phi[i]=phi[i]+randint(0,9) 
     rho[i]=rho[i]+randint(-5,5) 
     ax1.add_patch(patches.Rectangle((rho[i],phi[i]),wid[i],height[i]))  


rho=[12, 16, 18, 4, 11, 6, 17] 
phi=[12,16,18,4,11,6,17] 
wid=[2,2,2,2,2,2,2] 
height=[1,1,1,1,1,1,1] 

fig1=plt.figure(figsize=(15,32)) 
ax1=fig1.add_subplot(111, aspect='equal') 
plt.grid(True) 
pylab.xlim([-25,45]) 
pylab.ylim([-15,55]) 

while True: 

    arsplot(rho,phi,wid,height) #function call 

    plt.show() 
+0

見https://github.com/matplotlib/matplotlib/issues/4947例子(是的,這應該是在文檔,但它不是) – tacaswell

回答

0

我得到了我自己的問題的答案。 使用'set_data(x,y)'命令。下面是示例摘要碼:

plot_x = [0] 
plot_y = [0] 

fig1=plt.figure(figsize=(15,32)) 
ax1=fig1.add_subplot(111, aspect='equal') 
Ln, = ax1.plot(plot_x,plot_y,'ro') 
.....  #your function for changing x,y points. 
..... 
..... 
Ln.set_data(plot_x,plot_y) 
plt.pause(0.01)