3
我有一個關於從matplotlib動態更新散點圖的問題。 我有以下的類在Python實時動態繪圖
''' PolygonHandler.py - Python source for polygon handling '''
import numpy as np
import matplotlib.pyplot as plt
class PolygonHandler:
# Constructor
def __init__(self):
self.X = []
self.Y = []
self.numberPoints = 0
# Print the polygon
def draw(self):
plt.scatter(self.X,self.Y)
plt.draw()
def update(self):
for i in range(1,self.numberPoints):
self.X[i] += np.random.normal()*0.01
self.Y[i] += np.random.normal()*0.01
# append a point
def add(self,x,y):
self.numberPoints += 1
self.X.append(x)
self.Y.append(y)
這個類是在接收信息,並添加指向PolygonHandler類實時循環使用。現在一個例子的目的,我想設計下面的循環
P = PolygonHandler()
P.add(1,1)
P.add(2,2)
P.add(1,2)
plt.ion()
plt.show()
while (True):
P.draw()
P.update()
我怎麼能告訴解釋畫出散點圖,一旦更新完成後,除去前點?現在,我的情節繪製點和他們以前的位置。
文森特
非常感謝您的幫助
PS:一個其他的問題我已經是由matplotlib凍結打開,當我點擊它便會立即停止接聽(例如到窗口移動到我屏幕上的另一個地方),有沒有辦法來防止這種情況?
爲什麼需要*更新*你的情節,當你不想老點?難道你不能只關閉舊的情節,只是繪製新的數據? – Schorsch
Thx爲您的答案!實際上,我正在將這段代碼用於實時運行的C++應用程序中:不幸的是,關閉和重新打開太慢 – Vincent