実験などをしてデータが得られた場合、最終的にはそれを論文やレポートとして発表したり提出したりする必要があります。例えば、下図のようなデータがある場合を考えましょう。論文やレポートに載せる場合、下図のようなただプロットしただけのグラフを載せては審査を通らないか、もし仮に通ったとしても非常に評価は低くなってしまうでしょう。グラフは論文の顔です。せっかくの研究成果を説得力を持って発表するために、美しいグラフを作りましょう。
下図のデータ(data1.dat)を論文向けの図にするためにどのようなgnuplotスクリプトを作ればいいか、順を追って紹介していこうと思います。(※データは実験データではなく、gnuplotを用いて生成したものです。あしからず。)
上図のグラフは以下のスクリプトで作成できます。
## Step0: とりあえずプロットしてみる
plot "data1.dat" title "data"
物理分野で論文を投稿したりレポートを書いたりする場合、LaTeXを使用する場合が多く、その場合に最も適した画像フォーマットはEncapsulated Post Script(EPS)フォーマットです。とくにgnuplotはPost Scriptフォーマットでの出力の場合はかなり多様な表現が可能であり、最も得意とする出力フォーマットの一つであるといえます。したがって、これ以降主にEPSフォーマットに特化した図の作り方を説明していきます。
PS/EPS形式での描画を行うためには、set terminal
でpostscript
(もしくは短縮形post
)を指定します。EPS形式にしたい場合はeps
オプションを指定します。さらにcolor
とenhanced
オプションは非常に便利なので指定しておいてください。
デフォルトのフォントとフォントサイズも指定することが出来ます。この例ではデフォルトのフォントをArialの25ポイントにしています。適宜、フォントを指定してください。フォントのサイズはeps
オプションを使用する場合は25ポイントが個人的にはバランスがいい気がします。
## Step1: EPS形式で出力する
plot "data1.dat" title "data"
# 出力フォーマットとオプションの指定
set terminal postscript eps color enhanced "Arial" 25
# 出力ファイル名の指定
set output "step1.eps"
# グラフ再描画
replot
# フォーマットと出力のリセット
set output
set terminal win
このスクリプトを実行すると、以下のようなEPSファイルstep1.eps
が生成されます。
次に軸のラベルをつけてみましょう。軸のラベルはxlabel
やylabel
を使います。その際、EPS出力の場合はenhanced
オプションが使え、フォントなどの細かい指定をenhanced
書式で指定することが出来ます。
enhanced
書式では、フォントの変更には中括弧やスラッシュを組み合わせた{/=}
という書式を使います。例えばhoge
という文字列のフォントサイズを30ポイントに変更したい場合は{/=30 hoge}
と書きます。また、フォントをArial-Italicに変更する場合は{/Arial-Italic hoge}
のように書きます。フォントとサイズを両方変更したい場合は{/Arial-Italic=30 hoge}
のようにすればOKです。
また、下付文字はアンダーバー_
、上付文字はハット^
で表現することが出来ます。複数の文字を下付や上付にしたい場合は{}
でグループ化します。例えばH2OはH_2O
で、TonsetはT^{onset}
でそれぞれ出力することが出来ます。
以下に例を示します。
## Step2: 軸ラベルをつける
set xlabel "{/=30 Temperature (K)}"
set ylabel "{/=30 Resistivity ({/Symbol mW}cm)}"
plot "data1.dat" title "data"
# 出力フォーマットとオプションの指定
set terminal postscript eps color enhanced "Arial" 25
# 出力ファイル名の指定
set output "step2a.eps"
# グラフ再描画
replot
# フォーマットと出力のリセット
set output
set terminal win
上の例では30ポイントでラベルを出力しています。軸ラベルのフォントサイズはStep1で指定したデフォルトのサイズより少し大きめにした方がバランスが良いようです。ギリシャ文字のミューやオメガはSymbol
フォントを用いて表現します。
以下のように物理量を表すシンボルを軸ラベルに使用する場合も多いです。物理量を表す文字は斜体にするのが基本ですので、温度を表すT
はArial
の斜体のArial-Italic
で、電気抵抗率を表すギリシャ文字ローはSymbol
の斜体であるSymbol-Oblique
で出力しています。さらに下付文字の例として、ローには下付に斜体のcをつけてみました。
## Step2: 軸ラベルをつける(別タイプ)
set xlabel "{/=30 {/Arial-Italic T} (K)}"
set ylabel "{/=30 {/Symbol-Oblique r}_{/Arial-Italic c} ({/Symbol mW}cm)}"
plot "data1.dat" title "data"
# 出力フォーマットとオプションの指定
set terminal postscript eps color enhanced "Arial" 25
# 出力ファイル名の指定
set output "step2.eps"
# グラフ再描画
replot
# フォーマットと出力のリセット
set output
set terminal win