0

pylab アニメーションを使用して複数の図を更新したい。表示する各チャネルの新しい Figure を初期化し、以下を使用してインタラクティブ モードをオフに設定します。

    pyplot.ion()
    pyplot.show()

Figure を含むクラスには、データを更新するためのリング バッファーとメソッドがあります。

    def append_data(self, data):
        update buffers with data

        ...
        ...

        self.lineb.set_data(self.tbuf, self.bbuf)
        self.ax1.set_xlim( [min(self.tbuf), max(self.tbuf)] )
        self.ax1.set_ylim( [min(self.bbuf), max(self.bbuf)] )

        ...
        ...

        self.fig.show()
        pyplot.draw()

問題: 複数の Figure がある場合、最後の 1 つだけが正しく更新されます。他のものは更新されません。データが各図のバッファに正しく追加されていることはわかっているので、問題はありません。

4

1 に答える 1

0

この記事に従って解決策を見つけました。

名前で図を初期化しました:

fig = pyplot.figure(name)

そして、次の行を変更しました。

    self.fig.show()
    pyplot.draw()

に:

    pyplot.figure(name)
    pyplot.draw()

どうやらこれはうまくいくようですが、その理由は完全にはわかりません。

于 2014-01-31T23:07:13.283 に答える