2015年8月8日土曜日

[gnuplot] 散布図のプロット

複数のグラフデータが書き込まれた1つのファイルから,各々のグラフをプロットする手順のメモです.

まずは,ファイルに読み込み可能な形式で数値データが書き込まれている必要があります.
gnuplotは,列毎のデータを読み取るので,x軸のデータを1列目に,y軸のデータを2列目に書き込みます.
また,1列目と2列目の間は,スペースで区切られていることが必要です(簡単なデータ作成方法としては,表計算ソフトでデータを作成し,".prn"形式で保存して,拡張子を".dat"に変更するという方法があります).

例として,以下のようなデータがあったとします.
# data
# x y
5.7 1.836
8.2 1.888
10.1 1.913
11.4 1.911
13.4 1.885
15 1.846
15.9 1.819
17.5 1.776

上記のデータをプロットするには,"using"コマンドを利用します.
上記のデータが,"output.dat"という名前で保存されていたとして,gnuplotを立ち上げます(gnuplotを立ち上げる前に,プロットしたデータファイル(例では"output.dat")のあるディレクトリ(上記の例では,desktop)に移動した上で,gnuplotを立ち上げます).
$ cd desktop
$ gnuplot

G N U P L O T
Version 5.0 patchlevel 1    last modified 2015-06-07 

Copyright (C) 1986-1993, 1998, 2004, 2007-2015
Thomas Williams, Colin Kelley and many others

gnuplot home:     http://www.gnuplot.info
faq, bugs, etc:   type "help FAQ"
immediate help:   type "help"  (plot window: hit 'h')

Terminal type set to 'aqua'
gnuplot> plot "./output.txt"
gnuplot> 
と入力すると,グラフがプロットされます.
gnuplot> plot "./output.txt" w lp
とすると,点が折れ線で結ばれます." w lp "というコマンドは,線と点でプロットするという命令です.

表示する軸の範囲を指定するには,以下のようにx軸の値(この例では[0:25]と記述して0〜25としています)と,yの値([1.6:2.1]と記述して1.6〜2.1としています)を指定することができます.
gnuplot> plot [0:25][1.6:2.1] "./output.txt"
軸にラベルをつける場合は,以下のように入力します.
gnuplot> set xlabel "water content w(%)"
gnuplot> set ylabel "dry density ρd(g/cm3)"
gnuplot> plot [0:25][1.6:2.1] "./output.txt"
データ間を3次スプライン(cubic spline)曲線で補間するには,以下のように入力します.
gnuplot> plot [0:25][1.6:2.1] "./output.txt" smooth cspline
なお,3次スプライン(cubic spline)曲線は,全ての点を通ります.これを確認するには,グラフを重ね合わせて表示します.
gnuplot> plot [0:25][1.6:2.1] "./output.txt" smooth cspline, "./output.txt"

0 件のコメント :

コメントを投稿