如何以非均匀间隔更新matplotlib

时间:2015-08-28 14:42:37

标签: python animation matplotlib

我以非固定间隔从传感器获取数据。当它完成90帧我想绘制它。我正在添加矩形补丁。我无法更新数字。 我想我不能使用Funcanimation,因为我没有固定的间隔。

我想在调用它时创建一个函数,它会更新数字。

我已经创建了一个临时函数,它应该在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()

1 个答案:

答案 0 :(得分: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)
相关问题