Contents
全 6 回へのリンク
No. | Date | Software | Platform |
1 | 2016.8.3 | gnuplot 5.0.3 | Cygwin |
2 | 2016.8.6 | gnuplot 5.0.4 | Windows |
3 | 2016.8.7 | Gnu Octave 4.0.3 | 〃 |
4 | 2016.8.10 | R 3.3.0 | 〃 |
5 | 2016.8.11 | pyxplot 0.9.2 | Cygwin |
6 | 2016.8.13 | Scilab 5.5.2 | Windows |
第
実行環境
••
•
psql
導入のしやすさ(今回経験した範囲で)
Software | Platform | しやすさ | コメント |
gnuplot | Windows | ☆☆☆ | インストーラかポータブル版を使うだけ |
Octave | Windows | ☆ | 職場の |
R | Windows | ☆☆☆ | インストーラかポータブル版を使うだけ |
pyxplot | Cygwin | × | LaTeX |
Scilab | Windows | ☆ | 職場の |
Octave
psql で、グラフ出力前に実行するコマンド
各ソフトウェアの実行を簡単にするための環境変数と、クエリ結果を「半角空白区切り、データのみ」にするもの。前者のうち-- set path or environmental variables # \setenv gnuplot 'd:/works/gnuplot/current/bin/gnuplot -e' # \setenv octave 'd:/works/octave/current/bin/octave-cli -q --eval' # \setenv r 'd:/works/r/current/bin/x64/rscript -e' # \setenv SCIHOME 'd:/works/scilab/current' # \setenv scilab `echo $SCIHOME`'/bin/Scilex -nb -e' -- set output format # \f ' ' \\ \t on \\ \pset format unaligned -- suppress warning about locale on win R # \setenv LC_CTYPE 'C'
これで、カレントの位置に関わらず各ソフトウェアを起動できます。Scilab
psql から起動 & コマンド実行して戻るテスト
gnuplot、octave、R# \! $gnuplot 'print(1)' # \! $octave 'disp(1)' # \! $r 'print(1)' # \! echo 'print(1)' | pyxplot # \! $scilab 'disp(1); exit'
場面 1 … コンソール内に簡単なグラフを出す
gnuplot# values (2),(1),(6),(8),(14) \g | $gnuplot 'set nokey; set term dumb; plot "-" w boxes'
↓ グラフを出して対話シェルに留まるなら、コマンド最後にハイフンを付けます。グラフを再度出しそうな場合に便利。データをパイプで渡すと
# values (2),(1),(6),(8),(14) \g gtmp \\\! $gnuplot 'set nokey; set term dumb; plot "gtmp" w lines' - gnuplot>
場面 2 … 別窓にグラフを出し、閉じたら psql に戻る
gnuplot、Octave、Scilab↓
# values (2),(1),(6),(8),(14) \g | $gnuplot 'plot "-" w lines' -p
↓
# values (2),(1),(6),(8),(14) \g gtmp \\\! $octave 'd=load("gtmp"); plot(d); waitfor(gcf); exit'
↓
# values (2),(1),(6),(8),(14) \g gtmp \\\! $scilab 'd=fscanfMat("gtmp"); plot(d); xclick; exit'
場面 3 … 別窓にグラフを出し、対話シェルに留まって何かする
これも↓
# values (2),(1),(6),(8),(14) \g gtmp \\\! $gnuplot 'plot "gtmp" w lines' - gnuplot> ... gnuplot> ...
↓
# values (2),(1),(6),(8),(14) \g gtmp \\\! $octave 'd=load("gtmp"); plot(d)' --persist
↓
# values (2),(1),(6),(8),(14) \g gtmp \\\! $scilab 'd=fscanfMat("gtmp"); plot(d)'
場面 4 … R、pyxplot が役立つのは
これまでの場面R
pyxplot
補足 1 … データをパイプで渡せるのは「1 回だけ使う」場合
gnuplot$ echo 1 | d:/works/r/current/bin/x64/rscript -e 'read.table("stdin"); read.table("stdin")' V1 1 1Error in read.table("stdin") : no lines available in input Execution halted
R
gnuplot
補足 2 … Octave での数値ラベルの問題はロケールが原因
Octaveところが今日は ↓ 正常に数値が表示されました。
あれ~
補足 3 … 各ソフトウェアの起動までの軽い・重い(体感)
これはもそんな状況。Pyxplot
最後に
今回はコンソールで全ての入力を完結させ、スクリプトファイルは使いませんでした。グラフをいろいろ調整していくとコマンドが増えるので、スクリプトにする場面も多いと思います。その際の出力形式について、今回はグラフを別窓に出すのを中心にしました。ファイル出力して見る場合、ビュワー起動やフォーカス、読み込み(更新)がどうしても面倒。とくにノート