GNUPLOT

- not so Frequently Asked Questions -

update 2004/11/29

学術論文の投稿にgnuplotを利用する例

ここでは,学術論文を投稿するときに添付する図をgnuplotとTeXで作る方 法を紹介します.論文投稿の際の図のフォーマットは学会誌の規程毎に違いま すので,あくまで一例です.

論文の図を送付する一般的な方法は,図を別紙にまとめておきcaptionだ けの紙を添付する,captionを図中に入れる,の2通りが考えられます. captionの入れ方によってちょっと方法が異なりますが,やりかたそのものは 同じです.これをLaTeX2eで作ります.

  1. 図を作る際の注意
  2. TeXでまとめる
  3. 横向きの図を作る
  4. ページ毎のPostscriptを作る
  5. 完成品

図を作る際の注意

最初に図だけをgnuplotを使ってEPSで作っておきます.その際,以下の点 に注意します.

  • グラフの出力は, set term postscript eps enhanced で行う. 色付きの図を受け付けてくれるなら, color のオプションを付ける.
  • 目盛の数字と軸のラベル,凡例の文字を 大きくすること
    論文出版の際には図は縮小されますので,文字が小さいと潰れて読めま せん.そのため,字が小さいと間違い無く編集者から文句を言われます. 描いている図にもよりますが,A4の紙一枚に2次元プロット図を一つ入 れるばあいには,以下のようにsizeを0.6くらいに縮小してEPSを作成し, 後で全体を拡大すると丁度良いようです.
    gnuplot> set size 0.6,0.6
    
  • 複数のプロットを1つにまとめるには, 図の大きさを揃えておくこと
    複数のプロットを組み合わせて一つの図として表示する際には,それぞ れのプロットの大きさが同じでないとバランスが悪くなります.
  • gnuplot以外のソフトを用いて作成した図も,全てEPSで保存しておけば, 同様の方法で全体をまとめることができます.

例としていくつかの関数をgnuplotを使って描いたファイルを用意しました.

up

TeXでまとめる

A4サイズの紙一枚につき図一つを入れたものを,論文に添付して投稿する 方法を考えます.Figの番号が10まであれば,それらを用紙10枚に分けて印刷 するという意味です.また,各用紙には,図の番号やcaption,投稿者の名前 と所属を書き込んでおくように指定されている場合がありますので,必要に 応じてこれらも入れるようにします.

上で作った4つのEPSをA4サイズのPostscriptに作り変えます.LaTeX2eの graphics (or graphicx)パッケージを用います.figure.texという名のファイ ルを用意して,gnuplotで作ったEPSをこの中に取り込みます.ファイルの始め の部分を以下に示します.

\documentclass[12pt]{article}
\oddsidemargin   0mm
\evensidemargin  0mm
\topmargin       0mm
\headheight      0mm
\headsep         0mm
\topskip         0mm
\textwidth     160mm   % 210 - 25x2 mm
\textheight    235mm   % 297 - 30x2 -2 mm
\baselineskip  12pt    % single space
\usepackage[dvips]{graphics}
\begin{document}
\pagestyle{empty}

\includegraphicsでEPSを取り込み,\resizebox を使っ て図の横幅がdocumentの横幅程度になるようにEPSを拡大します.ページの上の 方に図の番号と著者名・所属を書き込んでおきます.次の例では,これらを 右寄せにして表示しています.

\begin{flushright} 
  Fig.~1~:~ Kawano, T. (LANL) 
\end{flushright}
\vskip 1cm
\begin{center}
  \resizebox{150mm}{!}{\includegraphics{besj0.eps}}
\end{center}
\clearpage

図のcaptionまで含める場合は,figure環境を用います.この場合は図に ラベルを付けることができますので,2行目の図の番号にカウンタを用いるこ とができます(勿論,上の例でも自分でカウンタを作れば可能ですが)

\begin{flushright} 
  Fig.~\ref{besj0}~:~ Kawano, T. (LANL) 
\end{flushright}
\vskip 1cm
\begin{figure}[b!]
  \begin{center}
    \resizebox{150mm}{!}{\includegraphics{besj0.eps}}
    \caption{Bessel function, $J_0$.}
    \label{besj0}
  \end{center}
\end{figure}
\clearpage

複数のプロットをまとめて一つの図にするには,tabular環境を使って配 置すると簡単です.上の4つのEPSを2行2列にまとめて一つの図にしてみます.

\begin{flushright} 
  Fig.~5~:~ Kawano, T. (LANL) 
\end{flushright}
\vskip 1cm
\begin{center}
  \begin{tabular}{cc}
     \resizebox{70mm}{!}{\includegraphics{besj0.eps}} >
     \resizebox{70mm}{!}{\includegraphics{besj1.eps}} \\
     \resizebox{70mm}{!}{\includegraphics{besy0.eps}} >
     \resizebox{70mm}{!}{\includegraphics{besy1.eps}} \\
  \end{tabular}
\end{center}
\clearpage

図の文字はさらに小さくなりますので注意が必要です.上の例でも,もう少し 字が大きくなるようにEPSを作り直した方が良いでしょう.

up

横向きの図を作る

横長の図をA4縦の紙に印刷するには, \rotatebox でEPSを90度 回転させます.横向きにすると,図をもう少し大きく拡大できます.下の例で は図の横長さ(印刷では縦の長さ)を20cmに伸ばしました.

\begin{flushright} 
  Fig.~6~:~ Kawano, T. (LANL) 
\end{flushright}
\vskip 1cm
\begin{center}
  \rotatebox{90}{%
     \resizebox{200mm}{!}{\includegraphics{besy1.eps}}}
\end{center}
\clearpage
up

ページ毎のPostscriptを作る

以上の方法でFig.1〜6までを作るTeXファイルは,以下のようになります.

このTeXファイルをコンパイルし,dvipsでPSファイルを作れば,投稿用図の 完成です.

% latex figure.tex
% dvips figure.dvi -o figure.ps

figure.psの中に,Fig.1から6までの図が,それぞれ一つの図につき1ペー ジづつに分けられて入ります.このPSファイルを印刷すれば6枚の図が完成で す.

American Physical SocietyesubシステムのようにPostscriptでsubmit できる場合は,図一つに対してPSファイルを一つ用意しますが,これもdvips を使うと簡単にできます.

% dvips figure.dvi -pp 1-1 -o figure1.ps
% dvips figure.dvi -pp 2-2 -o figure2.ps
% dvips figure.dvi -pp 3-3 -o figure3.ps
% dvips figure.dvi -pp 4-4 -o figure4.ps
% dvips figure.dvi -pp 5-5 -o figure5.ps
% dvips figure.dvi -pp 6-6 -o figure6.ps
up

完成品

fig1 fig2
figure1.ps figure2.ps
fig3 fig4
figure3.ps figure4.ps
fig5 fig6
figure5.ps figure6.ps
up