「for_figure.sh」という名前で以下のスクリプトを作ったならば,
./for_figure.sh datafile.dat
のようにして使う.
複数のデータファイルを使用する場合には,
./for_figure.sh datafile1.dat datafile2.dat
のようにする.
それぞれスクリプトの中の「$1」「$2」に対応する.
以下がスクリプト本文. 必要に応じて,適当にコメントをはずしたり, 追加の命令を書き込む必要がある. なお,記号(点)については対応表も載せておいた(必要そうな部分のみ). また,フォントについては
{/Times-Roman } {/Times-Italic } {/Symbol }などを使うことができる.
#!/bin/sh # ------------ tmp_fileの設定 comm=./disp.tmp.$$ # ------------ gnuplotのパスを設定 GNUPLOT=/usr/bin/gnuplot # ------------ gnuplotへの出力 cat << EOF > $comm #!$GNUPLOT # ------------ 出力のファイル名などの設定 set terminal postscript eps enhanced "Times-Roman" 30 set output "tmp.eps" # ------------ 記号(点)の設定 set style line 1 lt 1 pt 1 set style line 2 lt 1 pt 2 set style line 3 lt 1 pt 3 set style line 4 lt 1 pt 4 set style line 5 lt 1 pt 5 set style line 6 lt 1 pt 6 set style line 7 lt 1 pt 7 set style line 8 lt 1 pt 8 set style line 9 lt 1 pt 9 set style line 10 lt 1 pt 10 set style line 11 lt 1 pt 11 set style line 12 lt 1 pt 12 set style line 13 lt 1 pt 13 # ------------ x ラベルと y ラベルの設定(symbolも使用可) set xlabel "{/Times-Italic k}" offset 0, 0.3 font "Times-Roman,34" set ylabel "P({/Times-Italic k})" offset +2.5, 0 font "Times-Roman,34" # ------------ 複数の図をまとめるときのラベル set label "(a)" at 2.0, 0.0001 font "Times-Roman,40" ##### 目盛軸の設定 # ------------ 対数目盛の使用 set logscale x set format x "10^{%L}" set logscale y set format y "10^{%L}" # ------------ 普通の目盛の使用(桁数は任意に調整可) #set format x "%2.0f" #set xtics 2.0 #set mxtics 2 # 主目盛を2分割 #set format y "%3.2f" #set ytics 0.05 #set mytics 2 # ------------ 目盛の範囲 set xrange [1:500] set yrange [0.00001:1] #set yrange [0.00001:1] #set zrange [0:0.2] # ------------ 3次元プロットを2次元に射影した分布の出力(gray mode用) #set format cb "%3.2f" #set mcbtics 2 #set cbra [0:0.15] #unset colorbox #set pm3d map #set palette gray negative # ------------ 等高線表示用 #set data style lines #set nosurface #set contour base #set view 0,0 # ------------ 図の大きさの設定(図をまとめて Tex で出力する際に必要) set lmargin 8 set bmargin 3 set rmargin 5 set tmargin 1 # ----------- もし図の形を正方形にするのなら #set size square # ----------- 凡例を入れるなら set key、入れないのなら set nokey #set key left bottom #set nokey # ----------- 実際に plot #plot "$1" w p linestyle 9 notitle, 0.1*x**(-2) w l notitle #plot "$1" w yerr linestyle 9 notitle, 0.1*x**(-2) w l notitle #エラーバーあり EOF LC_ALL=C $GNUPLOT $comm # End of Script rm $comm
出力したepsが,論文用だったためにモノクロだったとして, しかしこれをカラーにしてPower Pointで使いたいと考えたとする. その際,もう一度データから図を作り直すのは非常に面倒くさい. また,ラベルを(a),(b),(c)と書いたにも関わらず, 図(b)と図(c)しか使わないことになったとき,ラベルを変更して図を作り直す必要が生じる. そのような面倒は,epsファイルを直に手書きで編集すれば回避できる. 以下がその方法.gnuplotで作ったepsファイルの中に以下のような文章の部分があるので, 必要に応じて編集する.
/Color true def
"true" : color
"false" : monochromatic
/Solid true def
"true" : 実線
"false" : 破線
/gnulnewidth 5.000 def
10.000 にすると2倍.
/hpt_ 31.5 def /vpt_ 31.5 def
63.0 にすると2倍.
/LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
DL の前が色指定 (RGB).小数点も使用可
[]内が破線の設定
[4 dl 2 dl] = 線分の長さ:間隔 ( 4:2 )
dashed, dotted などを自分で調整
chain line (一点鎖線) に関しては、dl を増やして対応
epsファイルの下部は,実際の線のデータや点のデータ, ラベル・軸の設定がしてある. たとえば,点は
4328 3215 Circleのように,x座標,y座標,記号,の順で書かれているだけ. 記号を変更したければ,「Circle」となっているところを「Box」のように置換するだけでよい. また,線のデータの部分
LT1 5333 1756 M 783 0 V -783 31 R 0 -62 V 783 62 Rといった部分の先頭に「LT1」とかがあるので,「LT0」とか「LT2」に変更すると線種が変わる.
LTb 1806 1668 M gsave 0 setgray [ [(Times-Roman) 400.0 0.0 true true 0 (\(a\))] ] -133.3 MLshow grestore
のような部分があるので,適当に変更.「¥(」というのが括弧のこと(エスケープ). なお,「Times-Roman」,「Times-Italic」,「Symbol」は使用可能. それ以外は未確認.
基本用途: pdfファイルをpsファイルに変換して,コメントや線などを追加する.
例えば論文のcopyrightを提出する際に, 手書き署名以外に名前や論文タイトルなどを印刷する必要がある場合に使えます. または,論文の校正刷りでpdfファイルが送られてきたときにも使えるのかもしれません. 普通はAcrobatなどを使うのでしょうが,使わずにpdfファイルの編集を行うように見せかける(?)方法.
例えば,psファイルの1ページ目にコメントを入れたい場合には,次のような箇所を探す
cleartomark end end pagesave restore showpage %%PageTrailer %%Page: 2 2 %%BeginPageSetup自分が試した範囲では,各ページの最後には
cleartomark end end pagesave restore showpageと書かれていた. そこで,
cleartomark end end pagesave restoreの前の行に必要な部分を挿入する.
(例)
/Times-Bold findfont 0.8 0.1 0.1 setrgbcolor 200 scalefont setfont 1000 1600 moveto (Comment) show最初の行でフォントを設定(/Times-Italic,/Symbolなど).
(例)
10.0 setlinewidth 1200 2000 moveto 1800 2000 lineto stroke最初の行で線の太さを指定.
とりあえず,文字と直線さえ書ければ,
論文の修正などには十分?
基本はpostscriptなので,当然破線なども描ける.
(追記/2009/05/08: 環境をMac OS X 10.5.6に変更し,Mac port経由のgnuplotを使用するようになりました (Ver. 4.2 patchlevel 5). その結果,若干epsの中身が変更になっていますが,基本は一緒です)