[英]python: How to monitor a variable ? Execute command when variable change
我有一堂這樣的課
class WaveData(object):
def __init__(self, data):
self.data = data
並創建一個數據對象,繪制一個圖形
wave = WaveData([[1, 2, 3],
[7, 5, 6]])
import matplotlib.pyplot as plt
fig=plt.figure()
plot1, = fig.canvas.figure.subplots().plot(wave.data[0])
plot2, = fig.canvas.figure.subplots().plot(wave.data[1])
我希望當我改變波值時,情節會同步變化
wave.data[1]=[5,6,7] # hope figure change together
我嘗試為WaveData
類添加方法changedata
,但是:
fig
,可能不合理(我可以把 fig 作為 self 屬性,但實際上, fig 還鏈接了其他沒有寫在這里的類對象)fig
: wave.data[1] =[5,6,7]
class WaveData(object):
def __init__(self, data):
self.data = data
def changedata(self,value,index):
self.data[index]=value
#-- change the plot index th plot data--#
global plot1,plot2,fig
plot1.set_ydata(self.data[1])
plot2.set_ydata(self.data[2])
fig.canvas.draw_idle()
#-- change the plot index th plot data--#
我想創建一個觀察者來監視wave.data
值。 當檢測到值變化時,執行一些操作
怎么做?
右圖:繪圖不是一個動態的或交互式的過程。 您以正確的方式開始,使用訪問方法來更改波形。 現在您必須重新繪制並重新顯示結果......這可能需要手動關閉第一個繪圖,具體取決於您選擇的繪圖包(例如matplotlib
)的界面。
要獲得完全交互的體驗,您可能需要使用動畫包,例如 PyGame,其中視覺顯示的變化是包假設的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.