同様の質問をいくつか見たことがありますが、そこからシステムを作成しましたが、このプログラムだけで多くの CPU 負荷がかかっているため、最適化する必要があります。
これがまさに問題です。
リアルタイムでプロットする必要がある入力信号/データ ストリームがあります。一度に表示するポイントの数を制限したいので (たとえば 1024 ポイント)、x 軸の 0 ~ 1024 のインデックスに対して y 軸に沿ってデータ ポイントをプロットします。着信データの値の範囲は 0 ~ 1023 です。
私が現在行っていること (これはすべて C++ で行われます) は、データが来るたびに循環ループに入れ、データが更新されるたびに (または 2 番目/3 番目のデータ ポイントごとに)、ファイルに書き出し、パイプを使用することです。 、そのファイルのデータを gnuplot でプロットします。
これはほぼ完全に機能しますが、かなりの負荷がかかります (入力データ レートによっては、私の Core 2 Duo の両方のコアで 70% の使用率さえ見られました)。この短いプログラムと一緒にプロセッサを集中的に使用するコードを実行する必要があるため、最適化する必要があると感じています。
私ができることを望んでいたのはこれです:現在のプロットと新しいデータの違いのみをプロットできますか (または、その x インデックスの古い項目が削除されるようにグラフ全体を再プロットせずに、各ポイントをプロットできます) .
グラフのポイント数が固定されているため、replot は機能しません。その x 位置の古いポイントを削除したい。