かっちょいいグラフを LaTeX に載せるには?

うちの講座シミュレーション多いので、どうしてもグラフを、しかも 縦に並んでるようなグラフを卒論に載せたくなります。 LaTeX + gnuplot でそれを実現する方法を以下に示します。 できあがり具合はこんな感じです。 waad, Sun ともに出来る筈です。

まず、マルチコラムなデータファイルが stfa.out という名前だったと しましょう。ここで、 横軸を第1コラムとして、 第2、第3、第4コラムを縦軸としたグラフをそれぞれ 書きたいとします。そんなときは、

% gp stfa.out 2 3 4 > stfa.obj
みたいにします。gp コマンドっていうのが、gnuplot を呼び出す プログラムで、結果を tgif の .obj 形式で標準出力に書き出すのです。 こいつを適当な名前で出力リダイレクションにより .obj ファイルに書き込みます(ここでは stfa.obj ですね)。

出力リダイレクションをしなければいけない点を除けば、 使いかたはほぼ xgp と一緒で、ようするに書きたいコラムを 指定すればいいのです。

では、このファイルを tgif で開いてみましょう。

% tgif stfa.obj

上のような画面が出て来るハズです。こいつでは、グラフが3つ重なっていて、 なおかつ一つ一つのグラフはグループ化されています。 こいつをずらして大きさ変えて(下図)、
さらに各グラフを ungroup (Ctrl-u) して(下図)、
あとは要らない凡例などを選んで(下図)消していけばよいでしょう。

しかし!、はじめから横長で出てくれたりしないの でしょうか。実はくれます。 ていうか、測定データを tgif 上で変形させるなど実はもっての他です (tgif は精度が荒いから。だから本当は上記のようなことはやらないで下さい)。 そのためには、~/.gnuplot というファイルを 新たに作り,そこに,

~/.gnuplot
set size 1.0,0.2
set yrange [-50e-6:50e-6]
set nokey
などのように書いておきます。これはデフォルトの 1.0x0.2 倍の大きさで、 かつy軸は -50e-6 から 50e-6 の範囲で書け、てな意味です。 「set nokey」というのはグラフ右上の凡例を消す、という意味です。 このファイルを作ったあとでもう一度 gp stfa.out 2 3 4 > stfa.obj を実行してみましょう、すると今度は以下のような大きさで3つ 重なってグラフが出てるはずです。
あとはこれを加工するだけです。最終的には、『time[ns]』とか 書き込んだり、y軸やx軸にふってある数字を加工したり、 凡例を消したり、y=0の目印の点線を消したりして、 以下のようにするとかっこいいでしょう。
あとはこいつを Ctrl-p で .eps 形式で書き出しておいて、 LaTeX のソース中で
LaTeXのソース
\documentclass{jreport}
     :
\usepackage{graphicx}
     :
     :
\includegraphics[scale=0.90]{hoge.eps}
などのようにして取り込むだけです。グッドラック!
back