この節ではデータファイルのどの列を使ってプロットするかを変更する 方法について説明します.
説明のために, 図9.15のような ファイルを考えます. このファイルには,
multi-data.datという名前がついているものとします. このデータの第1列, 第2列, 第3列の値は それぞれ, , になっています.
さて, 図9.15に示された ファイル multi-data.dat を使い,
plot 'multi-data.dat' with lines [Enter]というコマンドによりグラフをプロットすると, 図9.16のような グラフが得られます. ファイル multi-data.dat の第1列を横軸, 第2列を縦軸に取ったグラフがプロットされているわけです.
では, 第1列と第3列を使って, のグラフがプロットできる ようにするにはどうしたらよいでしょうか?
このためには, コマンド plot に using というキーワードを付けて実行します.
キーワード using がついたコマンド plot の基本的な構文は,
plot 'ファイル' using 横軸に使う列の番号:縦軸に使う列の番号 [Enter]です. ここに, 「横軸に使う列の番号」と書かれた部分と 「縦軸に使う列の番号」と書かれた部分には, それぞれ データファイル中で描画に使いたい列の番号を書きます. ただし, データの最初の列が第1列になります.
例題として, ファイル multi-data.dat の第1列と第3列 を使ってグラフを描いてみましょう. ただし, グラフを見やすくするために, コマンド plot にwith lines というキーワードを付け, データ点のあいだを線で結んでおくことにします.
plot 'multi-data.dat' using 1:3 with lines [Enter]というコマンドを実行すると, 図9.17に示すように, 希望通り のグラフがプロットされます.
もうひとつの例題として, 横軸にファイル multi-data.dat の第2列, 縦軸に第3列を取ったグラフを描いてみましょう. ただし, この場合は, 横軸がで縦軸がなので, 描画結果が円になることがわかってます. ですから, あらかじめ グラフの縦と横を一定にするコマンド set size ratio -1 を 実行しておくことにします.
set size ratio -1 [Enter] plot 'multi-data.dat' using 2:3 with lines [Enter]というコマンドを実行すると, 図9.18に示すように, 円が描画されます. ただし, サンプルの数が少ないのと, データファイルをプロットするときには標準では標本点のあいだは 直線で結ばれるので, 描画結果はやや角張ってしまっています.
実は, キーワード using にはもうすこし高級な使い方があります. これについて説明するためには, gnuplotが読み込んだデータをどのようにして解釈するかについて もう少し詳しく見ておく必要があります.
キーワード
さらに, 第mの実際に読み込まれたデータを, 「 m」という記号を関数の引数として使うことができます. ですから,
(関数($m))
」のように全体を括弧「( )」で囲う必要があることに
注意して下さい.
いくつか例を見てみましょう.
まず, キーワード using で列0を指定した場合の例を見ます.
plot 'multi-data.dat' using 0:2 with lines [Enter]というコマンドを実行すると, 図9.19に示すような グラフが得られます. このグラフの形は図9.16と同じですが, 横軸の目盛りが違います. この違いがどこから来ているかというと, 図9.16では 横軸の数値としてファイル multi-data.dat (図9.15)の 第1列目が使われているのに対し, 図9.19では横軸の数値として 0,1,2,...が使われていることから 来ています.
次に, 「$
n」という記号を使った例を見ます.
横軸をファイル multi-data.dat の第1列目に,
横軸をファイル multi-data.dat の第1列目に関数 sqrt (平方根を取る関数)を作用させた結果に
取ったグラフを表示してみます. この場合,
「第1列目に関数 sqrt を作用させた結果」は
sqrt($1)
」と書かれた部分を括弧で囲む必要があることを
に注意して下さい.
では例を見てみましょう.
plot 'multi-data.dat' using 1:(sqrt($1)) with lines [Enter]というコマンドを実行すると, 図9.20を のようなグラフが得られます. この例の場合, グラフの横軸が ファイル multi-data.datの第1列に, 縦軸が ファイル multi-data.datの第1列に関数 sqrt を作用させたものになっています.