第4話

gnuplotでeps形式のグラフを画像出力する方法

こんにちは!Takuya.B(@TB_IQ)です。

理系の大学生ならLaTeXを使ってレポートや論文を書くかと思いますが、おそらく“グラフ”を表示させることでしょう。このとき、良く使う画像形式に“eps形式”というものがあります。

あまり聞きなれない形式のファイルではありますが、このeps形式はLaTeXと非常に相性が良いです。LaTeXで実際にeps形式のグラフを表示させるのは別の機会にするとして、今日はgnuplotでグラフをeps形式で保存する方法をご紹介します!

gnuplotの過去記事はこちらからどうぞ!

スポンサーリンク

eps出力するための“魔法の呪文”

ターミナルでgnuplotを起動してそのままではeps形式で出力することができません。これはgnuplotのデフォルトの出力先がターミナル(x11やaquaterm)に設定されているからです。

そこで、まずは出力先を変更する必要があります。

難しく考える必要はありません。epsを出力する場合には魔法の呪文を打ち込む必要があるということだけ覚えておきましょう。

さて、その魔法の呪文は以下のようなコードです。

set terminal postscript eps color enhanced

このコードを入力しましょう。ほとんどの場合、カラー画像を出力すると思いますが、モノクロ画像を出力する際は上のコードの後ろから2つめのcolorは不要です。

ちなみにフォントやフォントサイズを指定することもでき、その場合の魔法の呪文は以下のようになります。

set terminal postscript eps color enhanced "san-serif" 20
 
行末の enhanced のさらに後ろに フォント名, フォントサイズ と記述します。

実際にepsを出力してみよう!

それでは実際にeps形式でグラフを出力してみましょう。実際に出力するグラフはシンプルにsin関数で$0<x<10$までy軸を$-1<y<1$の範囲で出力します。軸名はそれぞれ$x$,$y$とします。

set terminal postscript eps color enhanced "san-serif" 20   //魔法の呪文(出力先を変更)

set xrange [0:10]     //x軸の範囲を0から10に指定
set yrange [-1:1]     //y軸の範囲を-1から1に指定

set xlabel "x"     //x軸の名前を『x』に指定
set ylabel "y"     //y軸の名前を『y』に指定

set output "sin.eps"     //出力するファイル名を指定
plot sin(x)        //y=sin(x)をプロット
set output     //sin.epsに保存

set terminal "x11"     //出力先をターミナル(x11)に変更

このサンプルコードについて簡単に説明しておきましょう。

1行目は上で説明したとおり、eps形式でファイルを出力するための魔法の呪文です。

3~7行目は出力するグラフの設定をしています。3,4行目でx軸・y軸の範囲を、6,7行目でx軸・y軸のタイトルを指定しています。

9行目で出力するファイルの名前を指定して、10行目でプロットさせて11行目で実際に出力するという流れです。最後に13行目で出力先をターミナルに戻しています。

実際に出力したepsファイルは以下のようになります。

上部に表示されているファイル名が sin.pdf となっていますが、気にしないでください。MacならFinderなどで確認すればわかりますが、正しくsin.epsと出力されます。

スポンサーリンク

まとめ

このeps形式のファイルはレポートや論文を書くLaTeXと非常に相性が良いです。

gnuplotでレポート・論文用の画像を作る際の参考になれば幸いです。