• 締切済み

Javaからパイプでデータ送信しGnuplot描画

大変お世話になります。 以下のスロットで、Javaから単純にGnuplotのsin(x)コマンドを実行させ、描画される方法が紹介されていました。 http://okwave.jp/qa/q5427703.html 今回、上記の改良として以下の2点についてご質問させて頂けますでしょうか。 1)Java側で、例えば y=sin(x) の、x値(for文により生成)、y値を計算させ表示。 同時にこの、x値、y値を(多分)パイプ経由で、Gnuplot側に送りそれを描画させる方法。 (Javaから"plot sin(x)"を指示するのではなく、Gnuplotにはデータ値を送付) 2)及び上記描画(プロット)表示を、アニメーション的に描画される方法。 多分、こちらもJava側でGnuplot向けの描画コマンド中にfor文を用意し、x値とそのy値のセットを順次・動的にGnuplot側に送り出す事が必要と思います。 (C言語では同様のアニメーション表示が出来ている記載が別webにあり、sin(x)波がニョロニョロと動くように描画されています) http://ayapin-film.sakura.ne.jp/LJ/Docs/40th.pdf http://www.eng.kagawa-u.ac.jp/~haruna/memo/gnuplot/gnuC.html http://kabuto.phys.sci.osaka-u.ac.jp/~yuhii/pc/gnuplot_animation.html 以上2点をご存知でしたら、教示して頂きたいと思います。 ご理解頂ける方がいらっしゃいましたら、ご指導宜しくお願い致します。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

・Javaからパイプでgnuplotに送って処理 というのは ・javaでgnuplot用のスクリプト生成しファイルに保存→gnuplotでスクリプトファイルを実行 とするのと、ほぼ同じことです。また、これは ・テキストでgnuplot用のスクリプト生成しファイルに保存→gnuplotでスクリプトファイルを実行 と、なんら違いはありません。 (1)も(2)も gnuplotのスクリプトを考える ↓ それを生成するJavaのプログラムを考える という流れになります。 (1)については。 plotでは、式を指定する以外にも、ファイルからデータを読み出す仕組みがあります。 http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20131016/gnuplot-ja-div/node148.html この「ファイル」として、スクリプト自身を使うことができます(一部言語にあるヒアドキュメントのように) http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20131016/gnuplot-ja-div/node162.html