3

タイマー オブジェクトで動的に更新される一連のチャコ プロットがあります。データが変更されたときに Y (chaco speak の「値」 ) 制限を設定したいと思います。

呼び出すプロット オブジェクトを初期化するとき

obj.alldata = ArrayPlotData(frequency=frequencies)
# Cycle through the channels and add a set to the alldata object    
for [i,v] in enumerate(channels):
    setname="amplitude{:d}".format(v)
    obj.alldata.set_data(setname, empty_amplitude)

for c in config['plots']:
    thisplot=Plot(obj.alldata)
    xlim=thisplot.index_mapper.range
    xlim.low=1
    xlim.high=1000
    ylim=thisplot.value_mapper.range
    ylim.low=0.001
    ylim.high=1000

thisplot.plot(("frequency", initdata),
                 name="Spec",
                 value_scale="log",
                 index_scale="log")

container.add(thisplot)

その後、後でデータ配列を次のように更新します。

def onTimer(self, *args):
    '''This is fired every time the timer is triggered 
    '''
      # Get the data 


    for [i,v] in enumerate(self.channels):
        data=getsimdata(self.s,v,int(self.config['numsamp']))
        self.alldata.set_data(setname,data)

データが追加された後、プロットの範囲を自動設定したい場合を除いて、これはすべて正常に機能します。さまざまなページが提案しているのを見てきDataRange2Dましvalue_mapperたが、それらの使用方法がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1