破線の使用(dashtype)

gnuplot 4.6まではグラフのプロットや、矢印などに破線を使う場合、linetypeを使って指定していました。また、同時にターミナルのオプションをdashedにしておく必要がありました。gnuplot 5.0では、dashtypeという属性が新設され、より細かい指定が出来るようになりました。また、ターミナルオプションのsoliddashedは無視されるようになりました。

plot withやset arrowのオプションとして使う

dashtypeplot withのオプションとして以下のように使います。(set arrowのオプションで使う場合も同様です)

plot sin(x) with lines dt (10,5)

ここで、dtdashtypeの略で、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で設定しておく

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"

このスクリプトの実行結果は以下のようになります。

この方法は、複数個所で同じ破線を使う場合に有効です。