gnuplotでは,出力を画面に表示するだけでなくファイルに書き出すことができ,作成したグラフを他の文書に貼り付けたりすることができます.ここでは,その方法を説明します.
gnuplotの起動時のメッセージに
という行があったはずです.「aqua」というのは Mac OS 向けの画面表示インターフェイスです.この「Terminal type」を他のタイプに変えることで,画像ファイルに出力することができます.それを行うには,set term コマンドを使います.
なお上で (タイプ) を指定しなければ,指定できる Terminal type の一覧が表示されます.
このページの残りでは,いくつかの形式の画像ファイルに出力する方法を説明していきます.LaTeX 文書に挿入する方法は 27.11 グラフィックス を参照してください.なお,標準設定だと,軸や凡例のフォントが図に対して小さいように感じられます.実際に使う際には size 指定などをうまく使い,調節して下さい.
画像ファイルへの出力が終わったら,
を実行することで,再びgnuplot 起動時のようにグラフが画面上に表示されるようになります.
gnuplot を起動したまま,画像ファイルを別のソフトウェアで読み込んだりする前には,必ず set term aqua を行うか,別の(ダミーの)保存ファイル名を set output で指定するようにして下さい.そうしないと,画像ファイルの出力が不完全になることがあります.
PNG 形式:png, pngcairo
PNG 形式の画像ファイルを作成したいのならば,Terminal type に png を指定し,次に set output で出力したいファイルの名前を指定します.
ここで,size 480,360 は画像のサイズをピクセル単位で 480×360 にするという指定です.標準の画像サイズは 640×480 です.
その後,画面に出力するのと同じように
などとプロットを行うことで,内容が画面の代わりに set output で指定したファイル(この場合は gnuplot-png.png)に保存されることになります.下に,以上の入力から得られた gnuplot-png.png を載せておきます.
pngcairo
教育用計算機システムの gnuplot など,比較的最近のものでは Terminal type に pngcairo を指定することができます.png を使うよりかは,こちらがお勧めです.
これは,cairo と呼ばれるライブラリを用いて画像を書くもので,次のような特徴があります.
- 線やフォントの縁がなめらかになります.
- 上のように,set term で enhanced 指定をしておくと,上付き文字や下付き文字も表示させることができます(環境が整っていれば Terminal type が png であってもできるはずなのですが).
Terminal type が png のときと同じように,
で出力した画像を以下に載せます.上の terminal type が png であったときの画像と比べてみて下さい.
印刷するときはカラーでできるとは限りませんから,白黒で出力したいこともあるでしょう.また,フォントが気に入らないこともあるでしょう.そのような場合,set term の行にオプションをつけます.
- monochrome は,白黒で出力することを指定します.
- フォントは,font “Times” などと指定します.
- 他の Terminal type でも使えますが,fontscale 1.2 で,フォントサイズが標準の 1.2 倍になります.
PDF 形式:pdfcairo
cairo を使って PDF 形式のファイルを作成するときに使うのが pdfcairo です.LaTeX 文書に挿入する時はこの形式を用いるのが一番楽でしょう.
以下の点を除けば,ほぼ pngcairo と使い勝手は同じです.出力例 gnuplot-pdf.pdf を載せておきます.
- 画像サイズは(ピクセル単位でなく)「size 5cm,3in」 などと実際の長さで指定します.標準サイズは 5 in × 3 in です.
- 複数回 plot を行うと,できた PDF ファイルは複数ページの物になります.
EPS 形式:postscript, epscairo
27.11 グラフィックス にも書かれているように,LaTeX の文書中に画像を張り込むとき,EPS (Encapsulated Postscript) 形式で画像を作っておくのが伝統的でした.なので,このページでも EPS 形式で画像を出力する方法を説明します.
EPS 形式の画像を出力するには,下のように Terminal type に postscript を指定し,eps オプションをつけます.
- 上のように,pngcairo のところで説明した enhanced 指定も使うことができます.
- 標準は白黒 (monochrome) です.カラーで出力したい場合は,color 指定を加えます.
- pdfcairo のときのように,画像サイズは(ピクセル単位でなく)5cm などと実際の長さで指定します.標準サイズは 5 in × 3 in です.
あとは,画面上に表示するときと同じようにグラフのオプションを設定したり,plot で実際にグラフを描画したりします.
生成した EPS ファイルのスクリーンショットを下に載せておきます(灰色部分は画像の外です).
epscairo
pngcairo, pdfcairo と同じように,epscairo も用いることができます.使い方は pngcairo, pdfcairo とほとんど同じで,こちらは標準でカラーになります.
例によって,epscairo で生成した EPS ファイルのスクリーンショットを貼り付けておきます.灰色部分は画像の外です.
LaTeX への貼り込み用:epslatex
epslatex を使うと,画像部分を EPS 形式で,凡例や目盛などのテキスト部分を LaTeX の記法で書くことができます.標準では白黒になり,set output には TeX ソースの名前を指定します.LaTeX の使い方は 27. LaTeX を参照して下さい.
epslatex を使う場合,凡例の表示などに LaTeX の記法をそのまま書くことができます.下に例を示しますが,その前に注意点を述べておきます.
- 2 つのファイルが出力されます.上の例では,図版部分の gnuplot-epsl.eps と,テキスト部分の LaTeX ソース gnuplot-epsl.tex です.
- テキスト部分はほぼそのまま LaTeX ソースに出力されますが,コマンドの開始を表す \(バックスラッシュ)は \\ と2つ重ねないといけません.
- 上に関連して,特に目盛で負の数が出力されるときは,下の例の 2, 3 行目のように目盛が数式として表示されるようにします.LaTeX は地の文では – をハイフンとして認識するためです(27.10 欧文の書き方 参照).
こうして作った図を LaTeX 文書に挿入するには,次のように \input コマンドを使います.
\documentclass{jsarticle} \usepackage[dvipdfmx]{color,graphicx} % [dvipdfmx] の部分は使うソフトウェアに合わせること \begin{document} \begin{figure} \centering \input{gnuplot-epsl.tex} % \includegraphics はここでは使いません \caption{epslatexで図を入れた例} \end{figure} \end{document}