とらりもんHOME  Index  Search  Changes  Login

とらりもん - gnuplotでグラフを書く Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!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

と入力.

もしくは、[[こちら|http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.4/]]のリンクから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

ターミナルの設定について、詳しくは[[こちら|http://tex-numerics.blogspot.jp/2012/08/install-gnuplot-46-on-ubuntu-1204precise.html]]を参考に.


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