82.32 線種 (linetype)

コマンド set linetype は各種描画に使用される基本的な線種 (linetype) を再定義することを可能にします。このコマンドのオプションは、 "set style line" のものと全く同じです。ラインスタイルと違うところは、 set linetype による再定義は永続的なことで、これは reset の影響を受 けません。

例えば、線種の 1 と 2 はデフォルトでは赤と緑です。それを以下のように再定義します:


     set linetype 1 lw 2 lc rgb "blue" pointtype 6
     set linetype 2 lw 2 lc rgb "forest-green" pointtype 8

すると lt 1 を使用しているすべてのものが、細い赤線 (lt 1 の以前のデフォルト) か太い青線になります。この性質は、lt 1 に基づいて作られた一時 的なラインスタイルの定義のようなものも含んでいます。

注意: このコマンドは gnuplot バージョン 4.6 で新たに導入されたもので、 バージョン 4.2 のあいまいなコマンド "set style increment user" に置き 換わるものです。古いコマンドは現在は非推奨です。

この仕組みは、gnuplot で使用する線種列に対する個人的な好みを設定するの にも使えます。それを行うには、実行時初期化ファイル ~ /.gnuplot に、例え ば以下のようなそれ用のコマンド列を追加することをお勧めします:


     if ((GPVAL_VERSION < 4.5) \
     ||  (!strstrt(GPVAL_COMPILE_OPTIONS,"+USER_LINETYPES"))) \
         exit
     set linetype 1 lc rgb "dark-violet" lw 2 pt 0
     set linetype 2 lc rgb "sea-green"   lw 2 pt 7
     set linetype 3 lc rgb "cyan"        lw 2 pt 6 pi -1
     set linetype 4 lc rgb "dark-red"    lw 2 pt 5 pi -1
     set linetype 5 lc rgb "blue"        lw 2 pt 8
     set linetype 6 lc rgb "dark-orange" lw 2 pt 3
     set linetype 7 lc rgb "black"       lw 2 pt 11
     set linetype 8 lc rgb "goldenrod"   lw 2
     set linetype cycle 8

こうすると、あなたが gnuplot を実行する度に線種はこれらの値に初期化さ れます。線種はあなたが好む数だけ初期化できます。再定義しない場合は、そ れはデフォルトの属性を持ち続けます。例えば線種 3 を再定義から外せば、 それは青で pt 3, lw 1 となります。なお、サンプルスクリプトの最初の 2,3 の行は、古いバージョンの gnuplot ではスキップさせるための保険です。

同様のスクリプトファイルで、テーマベースの色選択の定義を行ったり、特定 の描画タイプ、あるいは特定の出力形式用に色をカスタマイズしたりすること も可能です。

コマンド set linetype cycle 8 は、大きな番号の線種に対しては色や線幅 に関するこれらの定義を再利用することを gnuplot に伝えます。すなわち、 線種 (linetype) 9-16, 17-24 等に対しては、これと同じ色、幅の列を使用し ます。ただし、点の属性 (pointtype, pointsize, pointinterval) は、この コマンドの影響は受けません。unset linetype cycle はこの機能を無効に します。大きな線種番号の線の属性を明示的に定義した場合は、それは小さい 番号の線種の属性の再利用よりも優先されます。

竹野茂治@新潟工科大学
2014年9月25日