- not so Frequently Asked Questions - update 2004/9/16
|
|
|
not so FAQ |
図を描いたその後は...(その1)作ったグラフをTeXの文書に貼り込みたい.gnuplotのドライバにはlatexというのがあり,これを使えばグラフを PicTeXにして出力してくれます.しかし,この方法は描く図によっては表示す る点の数が非常に多くなる場合があり,TeXの処理がメモリ不足で出来なくな ることがあります.従って,TeXに図を取り込む場合は,図をEPSで出力してお いて,LaTeXのgraphicsパッケージで読み込む方が簡単です. まず,gnuplotで図をプロットし,出力ドライバをenhanced EPSにして, EPSのファイルを作っておきます. gnuplot> set term postscript eps enhanced gnuplot> set output "test.eps" gnuplot> set key left top gnuplot> set size 0.5,0.5 gnuplot> set xrange [0:4] gnuplot> set yrange [0:4] gnuplot> set xlabel "Energy [MeV]" gnuplot> set ylabel "Cross Section [b]" gnuplot> set linestyle 1 lt 1 gnuplot> set linestyle 2 lt 1 pt 7 gnuplot> # for gnuplot ver.4 gnuplot> # set style line 1 lt 1 gnuplot> # set style line 2 lt 1 pt 7 gnuplot> plot 0.2536*x+1.1717 title "LESQ fit" \ > with lines linestyle 1,\ > "test.dat" usi 1:2:3 title "data" \ > with yerrorbars linestyle 2
標準のままでEPSを作ると,図に比べて文字が小さくなりすぎてしまいま す. set term のオプションで大きめのフォントを指定するか,この 例の様に set size で全体を小さくしてしまいます.フォントの大き さは変わらないので,相対的に文字が大きくなります. 誤差棒付きの記号を描く場合,gnuplotのPostScriptドライバは,線種を1以 外にすると破線や点線で誤差棒を描いてしまいます.従って,実線で種々 の記号を描くには,linestyleを使い,lt(線種)には1 番(実線)を指定した上でpt(記号)の番号を変えます. TeX(LaTeX2e)に図を貼り込むには,graphicsパッケージを使います.図を任 意の位置に挿入するには,\includegraphics{ EPS file }を使います.EPS fileの所にEPSのファイル名を指定し ます.挿入時に,\resizebox{X size}{Y size}を 使って図全体を拡大縮小することができます.図の縦横の比率を変えずに リサイズするには,X,Y sizeのどちらかに!を指定します.次の例は, figure環境に図を入れてキャプションを付けた場合です.図の横幅を120mm にしています.
\documentclass{article}
\usepackage{graphics}
\begin{document}
\begin{figure}
\begin{center}
\resizebox{120mm}{!}{\includegraphics{test.eps}}
\caption{This is a sample figure.}
\label{test}
\end{center}
\end{figure}
\end{document}
![]() 複数の図をまとめて一つにしたい.複数の図をまとめるには,gnuplot の multiplotを使う方法や複数のEPS を作っておいてそれらを再配置する方法等が考えられますが,EPSをたくさん 作っておいて,LaTeXのtabular環境で整列させる方法が簡単でしょう. 2行2列の計 4枚の図を配置する場合を考えましょう.Y軸のラベルは, 4枚の内の左側にある図だけに付け,X軸のラベルは下側にある図だけに 付けるとします.また,4枚全体に対して一つのキャプションを付けます. まず,4つそれぞれの図のEPSファイルを作っておきます.このとき, X軸とY軸がかならず揃うようにするため, 図の大きさが一定になるようにします. 例として,y=sin(x), cos(x), sin(2x), cos(2x)のグラフを描いてみます. gnuplot> set term postscript eps enhanced gnuplot> set lmargin 5 gnuplot> set bmargin 3 gnuplot> set rmargin 2 gnuplot> set tmargin 2 gnuplot> set size 0.5,0.5 gnuplot> set xrange [0:2*pi] gnuplot> set yrange [-1:1] gnuplot> set output "test1.eps" gnuplot> set xlabel "" gnuplot> set ylabel "sin x" gnuplot> plot sin(x) notitle gnuplot> set output "test2.eps" gnuplot> set xlabel "" gnuplot> set ylabel "" gnuplot> plot sin(2*x) notitle gnuplot> set output "test3.eps" gnuplot> set xlabel "X [nodim.]" gnuplot> set ylabel "cos x" gnuplot> plot cos(x) notitle gnuplot> set output "test4.eps" gnuplot> set xlabel "X [nodim.]" gnuplot> set ylabel "" gnuplot> plot cos(2*x) notitle これらtabular環境に取り込んで,整列させます.
\documentclass{article}
\usepackage{graphics}
\begin{document}
\begin{figure}
\begin{center}
\begin{tabular}{cc}
\resizebox{60mm}{!}{\includegraphics{test1.eps}} &
\resizebox{60mm}{!}{\includegraphics{test2.eps}} \\
\resizebox{60mm}{!}{\includegraphics{test3.eps}} &
\resizebox{60mm}{!}{\includegraphics{test4.eps}} \\
\end{tabular}
\caption{This is sample figures.}
\label{test4}
\end{center}
\end{figure}
\end{document}
![]() figure環境にせず,単純にtabularで配置した後,そのページだけをdvipsで PostScriptにしてしまえば,一つのPSにまとめることも可能です.これには, dvipsのコマンドラインオプション -pp を使います.また, -E オプションを使って,グラフのある部分だけを切り取ってEPSにすること もできます.この方法は案外便利で,任意の数のグラフを,TeXを使って好き なように配置し,それらをひとまとめにしたEPSを作れます.詳しくはdvipsの マニュアルを参照してください. この他にも,tgifを使って,複数のプロットを一つにまとめる方法もあり ます.また,EPSを読み込めるDraw系のソフトを使って図を並べる手もありま す. |