gnuplot 4.6まではグラフのプロットや、矢印などに破線を使う場合、linetype
を使って指定していました。また、同時にターミナルのオプションをdashed
にしておく必要がありました。gnuplot 5.0では、dashtype
という属性が新設され、より細かい指定が出来るようになりました。また、ターミナルオプションのsolid
やdashed
は無視されるようになりました。
dashtype
はplot with
のオプションとして以下のように使います。(set arrow
のオプションで使う場合も同様です)
plot sin(x) with lines dt (10,5)
ここで、dt
はdashtype
の略で、dashtype
と書いてももちろん構いません。また、パラメータ(10,5)
は、線を10・空白を5(単位不明)の繰り返しで破線を作るということを指定しています。このコマンドを実行すれば、以下のような破線で描かれたグラフが得られます。
パラメーターを(10,20)
にすれば、空白の方が長くなります。
plot sin(x) with lines dt (10,20)
また、パラメーターは偶数個の数字の組であればよく、4つ、6つ…の指定も可能で、それらの場合は奇数番目の数字が実線の長さ、偶数番目の数字が空白の長さを指定することになります。例えば、以下のようにして一点鎖線を作ることができます。
plot sin(x) with lines dt (10,10,3,10)
また、他の指定の仕方として、.
(ピリオド)と-
(ハイフン)と_
(アンダースコア)と
(半角スペース)を用いた文字列を用いる方法があります。最初の3つはそれぞれ、短い、中程度、長い実線を表し、スペースは空白を表します。使い方は、以下の例を見て頂けると分かりやすいでしょう。どの文字を用いるかによって、実線部の長さが変わっていることが分かると思います。
plot -sin(x/3) with lines dt "." title "dashtype \".\"",\
-sin((x-1)/3) with lines dt "-" title "dashtype \"-\"",\
-sin((x-2)/3) with lines dt "_" title "dashtype \"\\_\""
これらの文字は以下のように組み合わせて使うこともでき、より複雑な破線も指定できます。
plot -sin(x/3) with lines dt "-." title "dashtype \"-.\"",\
-sin((x-1)/3) with lines dt "- " title "dashtype \"- \"",\
-sin((x-2)/3) with lines dt "_.-." title "dashtype \"\\_.-.\""
最後に、以上のような使い方を一覧にまとめた図を掲載しておきます。
この図は、以下のスクリプトを用いて作製したものです。
set term wxt noenhanced
set macros
# 枠やマージンを消すためのコマンド
set lmargin 0
set tmargin 0
set rmargin 0
set bmargin 0
set format xy ""
unset xtics
unset ytics
set border 0
# 枠やマージンを消すためのコマンド ここまで
set xrange [0:1]
set yrange [0:1]
set key center center samplen 20 font "Courier,15" spacing 1.3
dt1 = "dt (1,4)"
dt2 = "dt (5,5)"
dt3 = "dt (10,10)"
dt4 = "dt (20,10)"
dt5 = "dt (30,10,5,10)"
dt6 = "dt (30,10,5,10,5,10)"
dt7 = "dt '.'"
dt8 = "dt '-'"
dt9 = "dt '_'"
dt10 = "dt '-.'"
dt11 = "dt '_-'"
dt12 = "dt '_.-.'"
plot 1/0 w l lt 1 @dt1 title dt1,\
1/0 w l lt 1 @dt2 title dt2,\
1/0 w l lt 1 @dt3 title dt3,\
1/0 w l lt 1 @dt4 title dt4,\
1/0 w l lt 1 @dt5 title dt5,\
1/0 w l lt 1 @dt6 title dt6,\
1/0 w l lt 1 @dt7 title dt7,\
1/0 w l lt 1 @dt8 title dt8,\
1/0 w l lt 1 @dt9 title dt9,\
1/0 w l lt 1 @dt10 title dt10,\
1/0 w l lt 1 @dt11 title dt11,\
1/0 w l lt 1 @dt12 title dt12,\
set dashtype
コマンドを使えば、よく使う破線パターンをあらかじめ設定しておくことができます。この設定は、plot
等の中でdashtype 1
などとして呼び出すことができます。
例えば、以下のスクリプトでは、あらかじめ1番と2番のdashtype
を指定しておき、plot
コマンドで呼び出しています。
set dashtype 1 (10,20)
set dashtype 2 "."
plot -sin(x/3) with lines dt 1 title "user-defined dashtype 1",\
-sin((x-1)/3) with lines dt 2 title "user-defined dashtype 2"
このスクリプトの実行結果は以下のようになります。
この方法は、複数個所で同じ破線を使う場合に有効です。