その1で作った図は、そこそこ見栄えのするグラフです。しかし、実際の論文ではスペースが限られている場合が多いにもかかわらず、その1のグラフでは横軸のラベルや数値が大きなスペースをとってしまっています。グラフの横軸は共通ですので、横軸ラベルや数値は一番下のグラフにさえついていれば十分です。ここではその1のスクリプトにさらに手を加えて下のようなグラフを作ってみましょう。
その一の最後のスクリプトにxlabel
をつけたり消したりする命令、さらに横軸の数値をつけたり消したりする命令を付け加えます。前者はset xlabel
またはunset xlabel
、後者はset format x
およびset format x ""
です。
## まずはデータをmultiplotしてみる
set multiplot layout 3,1
set lmargin 8
set rmargin 2
set tmargin 1.5
set bmargin 3.5
set mxtics 5
## Plot 1 ##
set label 1 "{(a) Resistance}" at graph 0,1.1 left
unset xlabel
set format x ""
set ylabel "{/=30 {/Arial-Italic R} (m{/Symbol W})}"
set yrange [-2:30]
set ytics 10
set mytics 2
plot "data1.dat" using 1:($2*1e3) w lp lt 1 pt 5 ps 0.5 lc rgb "red" notitle
## Plot 2 ##
set label 1 "{(b) AC susceptibility (real part)}"
set ylabel "{/=30 {/Symbol-Oblique c}' ({/Symbol m}V)}"
set yrange [-50:0]
set ytics 10
set mytics 2
plot "data2.dat" using 1:($2*1e6) w lp lt 1 pt 5 ps 0.5 lc rgb "blue" notitle
## Plot 3 ##
set label 1 "{(c) AC susceptibility (imaginary part)}"
set xlabel "{/=30 {/Arial-Italic T} (K)}"
set format x
set ylabel "{/=30 {/Symbol-Oblique c}'' ({/Symbol m}V)}"
set yrange [0:10]
set ytics 2
set mytics 2
plot "data3.dat" using 1:($2*1e6) w lp lt 1 pt 5 ps 0.5 lc rgb "dark-green" notitle
unset multiplot
if (exist("FRAG") == 0) \
pause -1 "Click OK to make EPS file";\
set out "multiplot.eps";\
set term post eps color enhanced "Arial,25" size 5in,6in;\
FRAG = 1; reread
undefine FRAG
set out
set term pop
上の例のように、一つ目のプロットの前にunset xlabel
とset format x ""
という命令を用いてxlabel
とx軸の数値を消去しています。すると以下のようなグラフができます。
せっかくできた空白を埋めるためにtmargin
とbmargin
を小さめに設定します。
set tmargin 0.7
set bmargin 0.7
すると以下のように空白が詰まります。
しかし、今度はラベルが窮屈になるので、各ラベルの位置をグラフの内部に変更します。
set label 1 "{(a) Resistance}" at graph 0.02,0.92 left
最後にデータとラベルがかぶらないようにyrange
をちょっとだけいじります。あまりyrange
を変えすぎてデータが見にくくなってしまっては本末転倒ですので注意しましょう。
最終的には以下のスクリプトで、その下にある図のようなグラフが作れました。
set multiplot layout 3,1
set lmargin 8
set rmargin 2
set tmargin 0.7
set bmargin 0.7
set mxtics 5
## Plot 1 ##
set label 1 "{(a) Resistance}" at graph 0.02,0.92 left
unset xlabel
set format x ""
set ylabel "{/=30 {/Arial-Italic R} (m{/Symbol W})}"
set yrange [-2:35]
set ytics 10
set mytics 2
plot "data1.dat" using 1:($2*1e3) w lp lt 1 pt 5 ps 0.5 lc rgb "red" notitle
## Plot 2 ##
set label 1 "{(b) AC susceptibility (real part)}"
set ylabel "{/=30 {/Symbol-Oblique c}' ({/Symbol m}V)}"
set yrange [-45:10]
set ytics 10
set mytics 2
plot "data2.dat" using 1:($2*1e6) w lp lt 1 pt 5 ps 0.5 lc rgb "blue" notitle
## Plot 3 ##
set label 1 "{(c) AC susceptibility (imaginary part)}"
set xlabel "{/=30 {/Arial-Italic T} (K)}"
set format x
set ylabel "{/=30 {/Symbol-Oblique c}'' ({/Symbol m}V)}"
set yrange [0:12]
set ytics 2
set mytics 2
plot "data3.dat" using 1:($2*1e6) w lp lt 1 pt 5 ps 0.5 lc rgb "dark-green" notitle
unset multiplot
if (exist("FRAG") == 0) \
pause -1 "Click OK to make EPS file";\
set out "multiplot.eps";\
set term post eps color enhanced "Arial,25" size 5in,6in;\
FRAG = 1; reread
undefine FRAG
set out
set term pop
その1でも述べたように、LaTeXで論文に図を貼りこむ場合はEPSファイルのBounding Boxの大きさが重要になります。上で作った図のBounding Boxを確認してみると、図が下にはみ出してしまっていることが分かります。
これは、グラフの間の余白をなくすためにset bmargin 0.7
としたため、一番下のグラフのbmargin
に入りきらなかった部分がBounding Boxからもはみ出してしまったのです。しかし、一番下のグラフだけset bmargin
の値を変えてしまうと、今度は一番下のグラフだけやや小さくなってしまってよろしくありません。
Bouding Boxの位置をグラフに合わせるのをまじめにやろうとすると、multiplot
のlayout
オプションを使うのをやめて手でsize
やorigin
を決める必要があります。これはかなり面倒です。簡便にBounding Boxを調整するには、unset multiplot
とset term postscript
の間にset size
およびset origin
命令を追加します。PostScriptターミナルの場合、Bounding Boxはset term postscript
を宣言した時点でのsize
とorigin
を反映するように設定されます。例えばset term postscript
の前にset size 1,0.5
が設定されていれば、Bounding Boxは通常の縦半分の大きさになります。
この性質を用いると、Bounding Boxをグラフに対してずらすことができます。
set multiplot layout 3,1
set lmargin 8
set rmargin 2
set tmargin 0.7
set bmargin 0.7
set mxtics 5
## Plot 1 ##
set label 1 "{(a) Resistance}" at graph 0.02,0.92 left
unset xlabel
set format x ""
set ylabel "{/=30 {/Arial-Italic R} (m{/Symbol W})}"
set yrange [-2:35]
set ytics 10
set mytics 2
plot "data1.dat" using 1:($2*1e3) w lp lt 1 pt 5 ps 0.5 lc rgb "red" notitle
## Plot 2 ##
set label 1 "{(b) AC susceptibility (real part)}"
set ylabel "{/=30 {/Symbol-Oblique c}' ({/Symbol m}V)}"
set yrange [-45:10]
set ytics 10
set mytics 2
plot "data2.dat" using 1:($2*1e6) w lp lt 1 pt 5 ps 0.5 lc rgb "blue" notitle
## Plot 3 ##
set label 1 "{(c) AC susceptibility (imaginary part)}"
set xlabel "{/=30 {/Arial-Italic T} (K)}"
set format x
set ylabel "{/=30 {/Symbol-Oblique c}'' ({/Symbol m}V)}"
set yrange [0:12]
set ytics 2
set mytics 2
plot "data3.dat" using 1:($2*1e6) w lp lt 1 pt 5 ps 0.5 lc rgb "dark-green" notitle
unset multiplot
set origin 0,-0.1
set size 1,1.1
if (exist("FRAG") == 0) \
pause -1 "Click OK to make EPS file";\
set out "multiplot.eps";\
set term post eps color enhanced "Arial,25" size 5in,6in;\
FRAG = 1; reread
undefine FRAG
set out
set term pop
上の例ではorigin
を下に0.1ずらし、size
を縦に1.1倍にしています。この方法はあまりほめられた方法ではないのかもしれませんが、簡単に下図のようにBounding Boxがグラフ全体を囲うように変更できます。
ここまでくれば論文に出しても全く遜色のない図であると言えるでしょう。