我以非固定间隔从传感器获取数据。当它完成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()
答案 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)