とらりもんHOME  Index  Search  Changes  Login

GNUPLOT

GNUPLOTとは

GNUPLOTはグラフ描画用スクリプト言語です。GNUPLOTには、たくさんの良いところがあります。

  • オープンソース。(どっかの会社の企業論理や栄枯盛衰、自分の財布の中身などにふりまわされなくてすむ)
  • インストールが簡単で、どんなプラットフォームでもだいたい使える。(GMTとかはインストールがちょっと面倒)
  • 歴史があって、「枯れた」ツール。(過去のノウハウが陳腐化しない・将来にわたって消えることがない)
  • シェルスクリプトに埋め込むことができる。(処理のパッケージ化・自動化・流用が可能)
  • だいたい思い付く限りのどんなタイプのグラフも描ける。
  • psやepsで出せば、そこそこ良い品質のグラフが描ける。(TeXにも埋め込めるし)

インストール

Ubuntu Linuxの場合。

コマンドで、以下を打ち込む($は打つ必要無し)。

$ sudo apt-get install gnuplot

基本的な使いかた

オプション

ファイル出力

PNGファイルに出力: set terminal png medium; set output "out.png" PNGファイルに白黒出力: set terminal png monochrome medium; set output "out.png"

EPSファイルをPNGファイルなどに変換するには

ImageMagickのconvertコマンドを使う。ただし、仕上りが小さすぎて解像度が悪すぎ、みたいな場合は、-densityオプションで調整する。オプションの位置に注意。参考

$ convert -density 144 fig1.eps fig1.png

凡例

凡例を左上に表示: set key left top 凡例を非表示(全部): set nokey 凡例を非表示(一部): plot "---" using -:- notitle w l ...

軸の範囲設定: set yrange [0:1] 軸の反転: set yrange [0:1] reverse 第二軸を使う: set y2label "Form Factor [MeV]" set y2range [-10:30] set y2tic -10,5 ...... ticを設定しないと目盛に数字がでてこない。 plot "dat" using 1:2 axes x1y2 noti w l linestyle 2 グリッド線を入れる: set grid

字体

set xlabel "m^2" ............ 上付き (平方メートル) set xlabel "SO_2" ........... 下付き (二酸化硫黄) set xlabel "{/Symbol m}m" ... ギリシャ文字 (μm) set label "Magnolia" at "2006_0615", 0.2 font "Times-Italic,30" ... イタリック(斜字体)

サイズ/たてよこ比/レイアウト

縦軸・横軸を同じ長さで: set size ratio 1 図の横:縦比を陽に設定: set size 1.2,0.7 余白の広さを固定する(複数グラフを同じレイアウトにするためなど): set lmargin 10; set rmargin 10

プロット

記号(w p) (linestyleの中ではptで指定)  1:+ 2:× 3:* 4:□ 5:■ 6:○(中に点) 7:● 8:△(中に点) 9:▲ 10:▽(中に点) 11:▼ 12:◇ 13:◆ 14:五角形 15:黒五角形 16:・・・・(まだまだ続く)

linetype (lt) (カラーeps)  1: 赤 2: 黄緑 3: 青 4: ピンク 5: 水色 6: 黄色 7: 黒 8: オレンジ 9: 灰色

set linestyleの書式  set style line 番号 lt 色 lw 太さ pt 記号 ps 大きさ

set style lineのオプション(線の様式の設定) lt ... 色の指定 1: 赤 2: 黄緑 3: 青 4: ピンク 5: 水色 6: 黄色 7: 黒 8: オレンジ 9: 灰色

lw ... 線幅

for文ぶんまわし

plot for [j=1:${num}] "in${i}" u 1:j axes x1y1 t sprintf("LAI %.1f", j*0.5) w l ls j 

or

file(n) = sprintf("dummy%d",n) 
plot for [j=1:${num}] file(j) u 1:2 axes x1y1 t sprintf("LAI %.1f", j*0.5) w l ls j

ヘッダーを読み飛ばす。

plot "RES-000.out" every ::2 u 2:4 axis x2y1 title "Original Elevation" w l ,"land_mark_Boyong2.txt" u 2:1 notitle w p

every I:J:K:L:M:N ---- I:行の増分, J:データブロックの増分, K:プロット開始行, L:プロット開始データブロック, M:プロット終了行, N:プ ロット終了データブロック

棒グラフの境界の色を変える。

plot 'file name' u 2:1 w boxes fs border rgb "black" pattern 1 lc rgb "cyan"

三次元でプロットする

plotの代わりにsplotを使う。

$ splot "(ファイル名)" u 1:2:3

グラフの角度は、

$set view (x軸に対する回転角),(z軸に対する回転角)

で調節可能。

グラフの形を正方形とか長方形に変える。

正方形

$ set size square

長方形

$ set size ratio (X軸に対するY軸の長さの割合)

色を指定する。

以下のHPを参照。

http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa/contents/program/gnuplot/colorname_list.html

ソースからのインストール

gnuplotの最新版であるgnuplot4.6.4(2014.1.21現在)をダウンロードしてみました. Ubuntu 12.04 LTSでの作業を想定しています.

ソースをダウンロード・展開する

端末で

$ wget  http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.4/gnuplot-4.6.4.tar.gz
$ tar zxvf gnuplot-4.6.4-tar.gz

と入力.

もしくは、こちらのリンクからgnuplot-4.6.4.tar.gzをクリックしてもダウンロードできる.展開の方法は先程と同様.

続いて、

$  cd  ~/gnuplot-4.6.4

でディレクトリを移動し

$  ./configure ; make ; sudo make install

と入力.

もし.うまくいかなければ、先に

$  ln -s /usr/lib/pkgconfig/lua5.1.pc  /usr/lib/pkgconfig/lua.pc

と入力する.

ターミナルを設定する

これで一応gnuplot4.6.4が起動できるようになった. でも、説明書きをよく見ると "terminal type set to unknown"となっており、このままだとグラフを描いても表示されない.また、起動のたびにいちいちterminal typeを設定するのも面倒. そこで、デフォルトのterminal typeを"wxt"に設定し、描いたグラフが新しいウィンドウで表示されるようにする.

$  sudo apt-get install libwxgtk2.8-dev libpangomm-1.4-dev
$  ./configure ; make ; sudo make install

ターミナルの設定について、詳しくはこちらを参考に.

これで、gnuplotを起動すると、無事terminal typeが"wxt"になっているのを確認できます!やったね!