1

オブジェクト Plotter に次のメソッドがある python スクリプトに取り組んでいます。

import matplotlib.pyplot as plt
class Plotter:

   def __init__(self):
       self.nbfig = 0

   def plot(self):
       self.nbfig += 1
       plt.figure(self.nbfig)
       plt.plot(self.time, self.angle, 'b')
       plt.ion()
       plt.show()

Pythonスクリプトは、何かをプロットする必要があるときはいつでも、リアルタイムC++アプリによって呼び出されます(そのため、プロットが別のスレッドで実行され、C++アプリを停止しないように plt.ion() を使用しています)しかし、時々 C++ アプリはアプリを更新する必要があり、次のメソッドを呼び出します。

def refresh(self):
    if (self.nbfig > 0): #meaning the c++ app already plotted a figure
        plt.close()

このメソッドは、角度をプロットした matplotlib ウィンドウを効果的に閉じます。ただし、メソッド plot (上記で定義) を 2 回目に呼び出すと、何もプロットされません (空のウィンドウが表示されます)。

plt.close() を呼び出すと、matplotlib のすべての動作に影響するようです (手動でウィンドウを閉じようとしたところ、スクリプトはさまざまなグラフを次々にプロットできます)。

この種の問題に遭遇したことがありますか?

助けてくれてどうもありがとう

一番

ヴィンセント

4

1 に答える 1