2012-02-17 24 views
8

Gnuplotで動的プロットを作成することはできますか?私の目的に必要なことは、データがループによって生成されるので、gnuplotを使用して、古いものを保存しているx-y軸にマーカーを配置することです。だから何とか私は最終的なバッチ結果を見るのではなく、データの進化を観察することができます。Gnuplotの動的プロット(MATLABの描画)

私が特に望むのは、MATLABの "drawnow"コマンドに相当します。

完全に関連しているわけではありませんが、gnuplotを使用してlisp内でプロットするために、今は共通のlispを使用してループ内のデータとcgnを生成しています。 (gnuplotを利用したcgnを使って、共通のlispの中にバッチ形式でデータをプロットすることができます)

ありがとうございます。

編集:私はこの目的のために共通のlispでコードを書いています。ここで確認することができます:
Plotting data sequentially from emacs using Common Lisp and Gnuplot
このスレッドはより一般的で、gnuplotの動的プロットを要求します。どんな提案も大歓迎です。

+0

私は常にfile-IOを使ってlispからMATLABに通信してきました。私はlispから直接的に大きな視覚化機能を得たことはありません。誰かがここでより良い解決策を思いつくかどうか見てみたいと思うでしょう –

+0

@claytonstanley、上記のリンクを確認してください。私はあなたのlisp-MATLABの実装を見たいと思います。これまで私はいつもMATLABを自分の目的に使用していましたが、何とかMATLABにコマンドを与えることができれば本当に見たいと思います。あなたが好きなら、私にメールを送ることもできます。事前にどうもありがとうございました。 – YBE

+0

上記のあなたのリンクは素晴らしいスタートのようです。どんな種類のファイルよりもはるかにダイナミックです - IOはおそらくあなたを得ることができます。私が使用したファイルIOソリューションは、txtファイルにプロットするためのデータを生成した後、mファイルを呼び出してそのファイルにデータをプロットすることでした。あなたがcgnで行っているルートははるかに良いようです。すべてを共通のlispに保ちます。私はcgnに関する経験がないので、私はそこでは助けることができません。プロットを行うためにMatlabを実際に使用したい場合、lispとMatlabの間にある種のダイナミックなインターフェースが正しい方法です。ソケット?私はlispがそれらをうまくサポートすることを知っていますMLABにはわからない –

答えて

0

あなたが尋ねていることを完全に理解しているかどうかはわかりませんが、プロットした最後の文字列にプロットを追加する場合は、gnuplot 4.4を使用しています。

gnuplot> plot sin(x),cos(x) #plot sin and cos in an xterm window 
gnuplot> eval GPVAL_LAST_PLOT."cos(x+pi/2.5)" #add cos(x+pi/2.5) to the current plot 

とにかく、それはあなたが、私はMATLABを使用しないようするために求めているものだ場合、私はわからないんだけど、私はそれがあると思います。

1

残念ながら、gnuplotに単一点をプロットするのは簡単ではありませんが、幸いなことにここで説明するような単純なハックがあります:Plotting a Single Point with Gnuplotechoメソッドについては、Unix環境でしか動作しません。

プログラムでplotの代わりにreplotを使用すると、以前の点を保存している時間の経過とともに進化する点のグラフが表示されるはずです。

私がPythonで使用している別の方法は、データポイントをファイルに入れることです。すべての反復で、ファイルにポイントを追加し、gnuplotで再度プロットします。それは少し醜いですが、ほとんどの場合、それは仕事をします。

+0

これは私が今やっていることです。 Common Lispを使って、私はテキストファイルに1つのポイントを加えて、それをプロットします。問題は明らかにテキストファイルが大きくなるにつれて、時間ステップごとにプロットする時間が遅くなることは明らかです。 – YBE

関連する問題