2013年9月27日金曜日

グラフ作成のためにgnuplotを使ってみた

今回おこなったのは
  1. 外部ファイルの読み込み
  2. 軸の範囲の設定
  3. 定数の入力と関数のグラフ表示
  4. 細かい表示(体裁)の調整
  5. PNGファイルとして保存
です。

そもそもgnuplotの使い方がまったく分からなかったので、まずは頼りになりそうなサイトを検索して見つけ[1]、これに沿うように進めました。

1, 読み込み
初期設定では、カレントディレクトリがホームフォルダに設定されています。ここにカンマ区切りのファイルを用意します。具体的には以下のような形式です。

0, 1.0
1, 1.5
2, 2.0
3, 2.5
4, 3.0
5, 3.5

これをexample.txtとして保存します。次にgnuplot上で

plot "./example.txt"

とすれば表示できます(軸等は自動設定される)。

2, 軸の範囲設定
x軸を0から10、y軸を0から5にしたい場合は次のように入力をします。

set xr[0:10]
set yr[0:5]

これで

replot

を実行すると、軸の範囲が反映されて再度描写されます。

3, 定数の入力と関数グラフの表示
先に軸範囲を定義しているので、この範囲でプロット点とは別にグラフを作りたいとします。たとえばy=0.5x+1を描きたいと仮定します。

a = 0.5
b = 1

と入力して定数を確定し、引き続いて

replot a*x+b

とすることで、y=0.5x+1がオーバーレイされる格好で表示できます。


4, 細かい体裁の調整
今回行ったのは凡例を右上から左上に移すことです。

set key top left

これで

replot

すれば右上だった凡例が左上に移動します。

5, PNGファイルとしてエクスポート
手順は、出力モードの切り替え→ファイル名の定義→グラフの描写(plot)です。

(1) 出力モードの切り替え
set terminal png size 800,600
set term png size 800,600

いずれでもOKです。これでpngファイルと800x600で出力する準備ができました。

(2) 出力ファイルの定義
plot "./graph1.png"

この段階ではグラフは描かれていません[2]。あくまでファイルを作っただけです(touchコマンドのような位置づけです)。

(3) ファイルへグラフを描写

plot "./example.txt, a*x+b

とすれば希望通り「プロットとグラフ」の両方がファイル へ出力されていることでしょう。
外部出力の際にはreplotでオーバーレイさせることができません[3]。


[1] http://graph.pc-physics.com/
[2] http://www.gnuplot-cmd.com/in-out/output.html
[3] http://linux-suomi.net/modules/tinyd5/index.php?id=8

0 件のコメント: