update 2001/9/11
![]() | |
![]() |
![]() ![]() ![]() ![]() |
![]() |
この3組のデータを最小自乗法で直線近似すると,y = -0.01687 x + 1.3512 となります.実験データとこの式による計算値を重ねてプロットしま しょう.実験データの入ったファイルを plotexp.dat としておきます.一つのファイルに書かれた3つの実験データのブロック は,indexを使ってばらばらにアクセスすることができます. index 0:0 もしくはindex 0なら一番最初のデータ, index 2:2もしくはindex 2 なら3番目のデータです. index 0:1とすると,1と2のデータを合わせたものになります. 誤差付きのデータをプロットするには,with yerrorbarsを使います. 誤差の値が必要なので,データファイルは3カラムあり,using 1:2:3 としてその3つを読み込みます.誤差の数値が%で与えられている 場合は,using 1:2:($2*$3/100.0) とすれば絶対値に変換できます.
![]() 入力行が長いときは,\(¥記号,もしくはバックスラッシュ)を行末にい れると,次の行も継続行とみなされます.行が長いときは,キーワード の省略形を使うと便利です.with は wだけ,indexはiだけ,と言う風に 短くして入力できます.どこまで省略できるかはキーワード毎に違うので, 適当に試してみてください.ちなみにファイル名の省略も可能です.一度与えた ファイル名をgnuplotは覚えていますので,上のように"plotexp.dat"が3回も 出て来る場合は,下の2つは "" と略すことができます. |
図の凡例が恰好悪いので,各データに表題を付けてみましょう. 最初のデータに,"A. Smith (1992)", 次のものを "B. Smith (1993)", そして最後のを "C. Smith (1999)"とします.
![]() |
関数を重ねてプロットするには,始めに関数を定義しておくのが便利です. 最小自乗法で得られた直線を f(x) = -0.01687*x +1.3512 で与えておき,それを プロットしましょう.
![]() 直線を一番始めにいれたので,データ表示に使われる線種が一つずれ ます. |
ウィンドウに表示するには,色が変わっている方が見やすいのですが,こ れをPostScriptにして印刷すると,ちょっと困ったことが起こります.直線は 1番の線種で描かれており,PostScriptにすると,1番は実線になります.次の 3つのデータは2,3,4の線種になっており,PostScriptでは点線や破線になりま す.従って,このままでは,誤差棒が点線や破線で描かれてしまいます. ![]() これでは困るので,線種は実線のままで記号だけを変えるようにします. それにはlinestyleを定義します.
linestyleの1番として,線幅を3の実線を定義してます.次の2〜4では線 種としては1番の実線を使い,記号(ポイント)に7,8,9を割り当てています.こ れらを使ってプロットするには,withのstyleの後にlinestyleを書き,その後 に使う番号を与えます.
![]() |
直線の凡例は,notitleを使って消してしまいました.データ表示に関す る部分は,ここまででほぼ終りです.ウィンドウ表示の場合は,全部赤色になっ てしまい見づらいですが,印刷するまでの辛抱です.後は,図のミテクレを変 えていくだけです. 図にXとY軸の名前を入れます.X軸は "Energy [MeV]" としましょう.ま たY軸には "Cross Section [b]" と入れてみましょう.軸の設定には,set xlabelとset ylabelを使います.replotを使うと,プロットしたものと同じも のをもう一度プロットし直しますので,先程の長いコマンドをもう一度入力す る必要はありません.
![]() |
今度は,X軸とY軸の範囲を変更します.Y軸の範囲を[0,2]にしましょう. Xの範囲は,これで全体がきれいに収まっていますが,0付近がかなりごちゃごちゃ しています.Xを対数にして,ここを拡大し,Xの最小値を0.01,最大値を20としましょう. 対数表示を指定するには,set logscale {x|y}を使います.
![]() |
最後に目盛を変えてみます.対数軸であるX軸はこのままで良いでしょう. Y軸のほうは,0.5刻みになっていますが,これを1刻みにし,その間を10等分 しましょう.また,図全体に方眼紙の様な格子を入れてみます.格子は 軸に数字が書かれている部分だけに描かれます.
![]() |
これで完成です.結果をPostScriptにして,印刷してみましょう. まず,出力ドライバをpostscriptにします.次に結果を出力するファイル名を set output で与え,replotします.このままgnuplotを終ってしまうと, いままでの作業が無くなってしまいます.saveを使うと,ここまでの 作業内容がファイルに保存されます.
出来上がったoutput.psをPostScriptプリンタに送れば,印刷できます. またghostviewやgvを使えば,内容をプレビューできます.下のイメージは, gvでoutput.psを画面に表示したものです. ![]() 縮小しているので見えにくいとは思いますが,7番の記号は●,8番は△, 9番は▲になってます.この様にgnuplotでは,出力ドライバによって,線や記 号の種類が変わります.PostScriptで出力できる記号は非常に沢山ありますが, 実験データのプロットで使えそうなのは,○△□くらいでしょう.これらの番 号の対応は次の様になっています.
|
![]() | |
![]() |
![]() ![]() ![]() ![]() |
![]() |