JAVA gnuplot GUI

linuxの世界ではおなじみのgnuplotで作成したグラフで、これをコマンドラインなり、スクリプトで作ろうとするのは、なかなか困難な仕事ですが、下図のようなGUIで作ってしまおう!というものです。

 

インストールと起動方法

  • ダウンロードは、こちらから。
  • DEXCS2012の場合は、解凍したファイル一式を/opt/の下に配置。
  • ランチャーを以下のように設定。

  • コマンドは、

java -cp /opt/jgp/classes jgp.gui.JGP

  • アイコンは、適当にそれらしいものを選択

使用方法

基本的な使い方は、中段にあるaddボタンを押して、グラフ化したいデータファイルを取り込む。その際、あるいは取り込んだ後で、editボタンを押して、グラフ作成オプションを指定する。指定が完了したら、最下段の「p…」ボタンを押してグラフが作成されるというもの。

本記事の冒頭のグラフは、OpenFOAMの標準チュートリアル(/tutorials/incompressible/pimpleFoam/TJunction)を実行した際に生成されるprobeファイルで、下の2つのデータファイルを図化したもの。

/probes/0/p

# x 1e-06 0.21 0.21 0.21
# y 0 -0.20999 0.20999 0
# z 0.01 0.01 0.01 0.01
# Time
0.1 11.8524 9.506 0.0774612 8.29336
0.2 12.5908 9.56011 0.0325712 9.77776
0.3 12.8325 10.0132 0.0198999 10.8647
0.4 12.6337 10.0151 0.0200219 12.3854
0.5 12.4087 10.0144 0.0216743 14.2281
0.6 12.5138 10.0134 0.0241092 16.036
0.7 12.7264 10.0139 0.0298833 17.5686
0.8 13.0169 10.0158 0.0262436 19.4456
0.9 13.339 10.0147 0.0343629 20.9839
1 13.7065 10.0188 0.0285815 22.7924
1.1 12.1526 10.0158 0.0266906 23.4025
1.2 11.6126 10.0119 0.0326085 23.4846
1.3 11.4354 10.014 0.0260517 23.6906
1.4 11.3631 10.0115 0.0322026 23.5776
1.5 11.3477 10.014 0.0257902 23.7132

/probes/0/U

# x 1e-06 0.21 0.21 0.21
# y 0 -0.20999 0.20999 0
# z 0.01 0.01 0.01 0.01
# Time
0.1 (1.45058 3.3527e-06 -9.07016e-05) (1.8152e-07 0.686353 2.30083e-06) (0.00339865 2.34878 0.00116766) (0.687987 1.29866 -0.00121753)
0.2 (2.57351 -4.27053e-05 -4.56213e-05) (3.10483e-08 0.758123 -3.29445e-07) (-0.00939538 3.48418 0.00035594) (1.65467 1.44645 -0.00140952)
0.3 (3.47955 8.45563e-05 -7.47432e-05) (1.14011e-06 -0.128788 -1.64345e-06) (0.00221911 3.60008 0.000476598) (2.47 1.36064 -0.0027808)
0.4 (4.29661 -4.38005e-05 -1.86744e-05) (-3.1619e-07 -0.844577 -2.96666e-07) (0.0248517 3.5348 -0.00109864) (2.9969 1.03584 -0.00611313)
0.5 (4.98775 3.40258e-05 5.74584e-06) (-0.00179506 -1.49046 -0.000227153) (0.00902345 3.67556 -0.000586355) (3.52701 0.819656 -0.0106215)
0.6 (5.53484 1.09341e-05 -1.73218e-06) (-0.0122547 -1.88229 -0.001028) (0.0056098 3.82529 -0.00027156) (3.8812 0.675415 -0.000225545)
0.7 (6.01528 1.43304e-06 1.406e-06) (-0.0139887 -2.20097 0.000742235) (0.000856776 3.99836 0.000352165) (4.28374 0.614463 -0.000521358)
0.8 (6.44619 9.08205e-06 3.23383e-06) (-0.014047 -2.47705 -0.000138798) (-0.000808365 4.15324 -0.000259671) (4.5627 0.564018 0.000626364)
0.9 (6.84574 1.42516e-05 -2.09968e-06) (-0.0143396 -2.72632 -0.000357084) (-0.000953818 4.30603 0.000109382) (4.83998 0.527597 -0.000122139)
1 (7.21789 2.31328e-06 -2.63459e-07) (-0.0145454 -2.95416 0.000118903) (-0.00115924 4.45152 -0.00024582) (5.09506 0.494605 -0.000489674)
1.1 (7.43154 -7.64179e-06 5.72174e-07) (-0.0153597 -3.07923 -0.000269672) (-0.00205848 4.53712 8.13328e-05) (5.26492 0.490347 0.000194169)
1.2 (7.50379 -5.82268e-06 -5.28283e-08) (-0.0155355 -3.11833 -0.000287025) (-0.0010108 4.56189 9.27888e-05) (5.31254 0.488726 0.00117017)
1.3 (7.5282 -4.27701e-05 1.24849e-08) (-0.0154902 -3.13244 -0.000529518) (-0.000806465 4.56902 3.0399e-06) (5.33903 0.491687 0.000955252)
1.4 (7.53718 -2.9341e-05 -2.89279e-07) (-0.0154281 -3.13661 -0.000808096) (-0.000771151 4.57277 7.76615e-06) (5.33857 0.487063 0.000613106)
1.5 (7.53989 -5.45129e-05 -2.98953e-08) (-0.0154031 -3.13845 -0.000945564) (-0.000755788 4.57304 -4.79092e-07) (5.34611 0.491268 -0.000158204)

これらのうち、上のpのように、スカラー値だけのリストなら、グラフ作成オプションの設定は比較的簡単。

 

  • ミソはDatastringの部分。「1:2」で、1列目を横(x)軸に、2列目を縦(y)軸にしたグラフを書きなさい、ということになる。

問題は、Uのようなベクトルデータの場合。OpenFOAMでは、ベクトルデータであることを判るように、ご丁寧にかっこ付きの出力をしてくれてしまう。このデータに対して、 同じDatastring処理をしようとすると、かっこが邪魔になってむなしくエラーとなってしまいます。また、ベクトルデータに対しては、その成分データを見たいというよりは、ベクトルの大きさを見たい・・・という場合のほうが多くて当然。こういう場合は以下のようにします。

  •  ミソ1は、Preprocess external program ということで、指定したデータファイルに対して前処理をするということです(このやり方を試行錯誤で苦労したんですが・・・)。ここでやっているのは、

sed -e “s/(//g” -e “s/)//g” $if > $of

ということで、sed というストリームエディタを使って、()を外してやるということで、ここまでは知っていたのですが、その後ろの $if > $of のおまじないです。$if がインプットファイル、$ofがアウトプットファイルということだそうです。ここで間違った書きかたをすると、JAVAが固まってしまうので、ご注意のほど。

  • ミソ2は、Datastringの部分。
1:(sqrt($2**2+$3**2+$4**2))

意味はそれなりに察してもらえると思いますが、ベクトルデータ(2〜4列目)のベクトルの大きさを計算しているということです。列データを計算式中で扱う場合には、$マークをつけるという点と、計算式sqrt(…)全体に対して、()で括ってやる必要があることでした。

jgp projectファイル

設定が完了したら、上段のFileメニューで、projectファイルとして保存しておきます。

  •  そうすると、次回は、Load project でこのファイルを開けば、面倒な設定は、そのまま使えるようになるということ。
  • 別のデータファイルに対して、類似の設定をしたい場合など、まずはこちらを開いて、データファイルの指定だけを変更するというやり方がお薦め。
  • 作成(保存)したprojectファイルの履歴は残っているので、面倒なフォルダー間の移動操作するより、こちらからたどるのがよほど簡単です。


何かと注文点

はあるんですが、今のところ、これに優るツールにはお目にかかれていないので、DEXCS2012にはこれを搭載することにしています。

  • JAVAに起因した問題ですが、
    • フォルダー間の移動操作が非常にやりづらい
    • ちょっと間違えた操作でよく固まってしまう。
  • color設定の切り替え(autoとそうでない色)が今ひとつ。
  • ファイルへの出力形式が、postscriptとsvg形式しかない点。
  • Edit Datasetしている時にデータファイルの内容を確認できると嬉しい。

 

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください