![]() | |
![]() |
![]() ![]() ![]() ![]() |
![]() |
一つのファイルに複数のデータを書いてそれらを同時にプロットするには, usingとindexを使います. X座標が同じでY座標が異なるデータをプロットするときは,データを表形 式で表して,usingでプロットするデータを指定するのが簡単です.
![]() X座標が異なる場合は,複数のデータを2行の空行で区切ってブロックにす る方法を使います.(注:ここでいうブロックとは,gnuplotのマニュアルにあ るdatablockとは異なり,通常の意味でのデータのかたまりを指します. gnuplotでは1行の空行で区切られたデータのかたまりをblockと定義してます)
![]()
![]() ここの例で分かるように,データをブロックにしてプロットした場合, 全部が同じ線種・記号で表示されます.各ブロックに対して異なる線種・ 記号を与えるには,それぞれのブロックのindexを使います. 初めのブロックのindexは0,次のブロックは1,という順序で,indexが 与えられており,これを指定してプロットします.
![]() indexは範囲を指定することもできます.上の例で,index 0とindex 1に 同じ記号を使い,2だけを変えるには,次のようにします.
![]() |
usingの後に指定するカラムに簡単な演算ができます.プロットする データとして次のものを用い,Y座標をそのまま,Y座標の値を2倍したもの, 平方根をとったもの,対数をとったもの,を同時にプロットしてみます.
![]() $nで,nカラムのデータを指定し,それに演算を施します.このとき計算 式は必ず()で括ります. using 1:sqrt($2) の様な書き方はエラーに なります.同じ方法を使って複数のカラムの演算結果をプロットすることもで きます.例えば2カラムと3カラムの積をプロットするには, using 1:($2*$3)とします. この方法は誤差付きデータを表示するときに便利なことがあります. gnuplotでは,誤差を絶対値で与えますが,データファイルにはパーセント のような相対値で表示されていることが少なくありません.using 1:($2*$3/100.0)とすれば,ファイルの中身を書き直すことなく%表示 のデータをプロットすることができます. |
gnuplotではプロットするデータのファイルと,実行するコマンドを記述し たファイルは独立ですが,単純なデータなら一つのファイルに入れてしまうこ とができます.基本的には,コマンドが記述されたファイルを作ってバッチ処 理する方法ですが,このファイルのplotコマンド部分に,プロットするファイ ル名として "-" を指定し,その後に数値データを書きます.データの終りは "e" で始まる行です.
このようなデータ込みのgnuplot制御用ファイルを用意し,gnuplot の起動時にコマンドラインオプションでファイル名を与えます.
但し,この方法ではreplotコマンドは使えません.gnuplotはデータを記 憶しないので,replotとすると,再び標準入力からデータを読み込もうとしま す. |
ファイル中の幾つかのデータを消してしまいたい場合があります.plot時 にデータのスキップを指定するには every を使 う方法と,データファイルを直接編集する方法があります.ここでは編集 する方法を説明します.スキップしたい数値の前に,何か適当な文字(例えば "?"等)を入れると,そこは読み飛ばされます.勿論,数値自体を文字で置き換 えても構いません.本当は,データを読み飛ばずための文字は, set missing で指定された文字の筈なのですが,数字に変換出来ない文字な らなんでも良いようです. 下の2つの例の様に,(X,Y1)と(X,Y2)のグラフを描く場合を考えます.
左の例ではX座標に?が付いていおり,2番目のデータである(2.0,1.8)と (2.0,0.8)の2つの点が読み飛ばされます.右の例では(2.0,1.8)の組は生きて おり,(2.0,0.8)だけが消されます.
![]()
![]() この機能は,データが表形式になっているときに,各カラムでの表示範囲 を変えたい場合に便利です.例えば,次のようなデータがあり,このY1,Y2を 同時に対数プロットする場合を考えます.
Y1はXが[1:3]の範囲で0なので対数にはなりません.gnuplotはこの場合, プロット出来る最後の点(ここではX=4)から下に真直な線を引きます. ![]() この鉛直線を消すには,Y1=0.0の部分にプロット出来ない文字を書き込み ます.例えばゼロの部分を "?0.0" に変えてプロットすると,Y1のデータ(赤 い線)はX=4から始めることができます.同様のことは,plotコマンドで, every ::3 を指定しても出来ます. ![]() |
![]() | |
![]() |
![]() ![]() ![]() ![]() |
![]() |