gnuplotによる図の作成

gnuplot 応用編(計算結果をすぐ見たい!)

(一部工事中、順次拡張予定)

プログラムの出力など、結果をざっと眺めたいときには、gnuplotのような簡易なグラフ作成ソフトウエアが有用である。 ここでは、いちいちファイルに落とさなくてもプログラムからの出力を直接gnuplotで見られる方法を紹介する。

gnuplot内で簡単なデータ計算

データファイルをプロットしていると、「2列目を2倍したいなあ」というように、 簡単な計算を行いたいことがある。その場合は、わざわざ2倍したデータファイルを新たに作成せずとも
      % gnuplot
      gnuplot% plot "filename" using 1:($2*2)
とすればよい。

また、列同士を用いて計算することも可能である。「1列目と2列目の積」をプロットするには

      gnuplot% plot "filename" using 1:($1*$2)
とする。

gnuplot内でのUNXコマンドの起動

  • gnuplotが起動している状態で、単にUNIXコマンドを実行したい場合、いちいちgnuplotを終了しなくても良い。
          gnuplot% !ls
          
    のように!をコマンドの前につければ、一時的にUNIXコマンドが走る。

  • UNIXコマンド出力の直接プロット
    例えば「ファイルをあるコマンドで処理した結果をファイルに保存せずに、直接gnuplotでみる」ということも可能である。
          gnuplot% plot "<awk '$1 > 2.0 {print}' filename"
          
    普通は""の中にファイル名を入れるが、<とコマンドを書くのがポイントである。 この例では、awkを用いて1列目の値が2.0以上の行だけをプロットさせている。 ファイル名指定の""の中にコマンドを書き、コマンドの前に<を付けることで、 そのコマンドの出力結果をファイルに保存せずに直接プロットできる。

  • 複数のUNIXコマンドによる標準出力のプロット
    複数のコマンドによる処理もパイプで接続してプロット可能である。
         gnuplot% plot "<paste file1 file2 | awk '$1 > 2.0 {print}'"
    この例では、まずfile1とfile2をpasteで結合したあと、その出力をawkに渡し、その結果をプロットする。

パイプや標準出力などの解説は、パイプライン処理・標準入出力によるデータ処理のページを参考のこと。また、gnuplotによるプログラム処理結果のダイレクト表示として、解説もしている。



計算機によるデータ解析入門のページに戻る

野口のTopページに戻る

情報科学科のTopページに戻る