88.12 With

関数やデータの表示にはたくさんのスタイルのうちの一つを使うことができます。 キーワード with がその選択のために用意されています。

書式:

     with <style> { {linestyle | ls <line_style>}
                    | {{linetype  | lt <line_type>}
                       {linewidth | lw <line_width>}
                       {linecolor | lc <colorspec>}
                       {pointtype | pt <point_type>}
                       {pointsize | ps <point_size>}
                       {arrowstyle | as <arrowstyle_index>}
                       {fill | fs <fillstyle>} {fillcolor | fc <colorspec>}
                       {nohidden3d} {nocontours} {nosurface}
                       {palette}}
                  }

ここで、<style> は以下のいずれか:

    lines        dots       steps     vectors      yerrorlines
    points       impulses   fsteps    xerrorbar    xyerrorbars
    linespoints  labels     histeps   xerrorlines  xyerrorlines
    financebars  surface    arrows    yerrorbar    parallelaxes

または、
    boxes         boxplot        ellipses       histograms  rgbalpha
    boxerrorbars  candlesticks   filledcurves   image       rgbimage
    boxxyerror    circles        fillsteps      pm3d        polygons
    isosurface    zerrorfill

または
    table

最初のグループのスタイルは、線、点、文字の属性を持ち、第 2 のグループ のスタイルは、さらに塗り潰し属性も持っています。以下参照: fillstyle (p. [*])。 さらにサブスタイルを持つスタイルもあります。個々のスタイルの詳細につい ては、以下参照: plotting styles (p. [*])。 スタイル table は、グラフの代わりに表形式の出力を生成します。以下参照: set table (p. [*])

デフォルトのスタイルは、set style functionset style data で選 択できます。

デフォルトでは、それぞれの関数やデータファイルは、使うことができる型の 最大数に達するまで異なる線種、点種を使います。すべての端末用ドライバは 最低 6 つの異なる点種をサポートしていて、もしたくさん要求された場合、 それらを順に再利用していきます。使用中の出力形式での線種、点種の集合全 体を見たければ、test としてください。

一つの描画で線種や点種を選びたいならば、<line_type><point_type> を 指定してください。これらの値は、その描画で使われる線種や点種を指定する 正の整定数 (または数式) です。使用する端末で使える線種、点種を表示する には test コマンドを使ってください。

描画の線の幅や点の大きさは <line_width><point_size> で変更できます。 これらはその各々の端末のデフォルトの値に対する相対的な値として指定しま す。点の大きさは全体に通用するように変更できます。詳細は、以下参照:set pointsize (p. [*])。しかし、ここでセットされる <point_size> と、 set pointsize でセットされる大きさは、いずれもデフォルトのポイントサ イズに掛けられることに注意してください。すなわち、それらの効果は累積は しません。例えば、set pointsize 2; plot x w p ps 3 は、デフォルトの サイズの 3 倍であって、6 倍ではありません。

ラインスタイルの一部分、あるいは各 plot において pointsize variable という指定も可能です。この場合、入力には追加の 1 列が要求されます。例 えば 2D 描画では 3 列、3D 描画では 4 列のデータが必要になります。個々 の点のサイズは、全体を通しての pointsize に、データファイルからの入力 による値をかけたものとして決定されます。

set style line を使って線種/線幅、点種/点幅の組を定義すれば、そのス タイルの番号を <line_style> にセットすることでそれらを使うことができま す。

2 次元、3 次元両方の描画で (plotsplot コマンド)、事前にコマン ド set palette で設定した滑らかなパレットからの色を使えます。色の値 は、点の z 座標の値か、または using によるオプションの追加列で与える 個別の色座標に対応します。色の値は、小数値 (palette frac) か、または カラーボックスの範囲へ対応づけられた座標値 (palettepalette z) のいずれかで指定できます。以下参照: colorspec (p. [*]), set palette (p. [*]),linetype (p. [*])

キーワード nohidden3d は、splot コマンドで生成される描画にのみ適用 されます。通常、グローバルなオプション set hidden3d はグラフ上の全て の描画に適用されますが、各々の描画に nohidden3d オプションをつけるこ とで、それを hidden3d の処理から除外することができます。nohidden3d がマークされた曲面以外の個々の描画要素 (線分、点、ラベル等) は、通常は 他の何らかの描画要素で隠されてしまう場合も全て描画されます。

同様に、キーワード nocontours は、グローバルに set contour 指定が 有効な場合でも、個別の plot に対する等高線描画機能をオフにします。

同様に、キーワード nosurface は、グローバルに set surface 指定が有 効な場合でも、個別の plot に対する 3 次元曲面描画をオフにします。

キーワードは暗示するような形で省略可能です。

linewidth, pointsize, palette オプションは全ての端末装置でサポー トされているわけではないことに注意してください。

例:

以下は、sin(x) を鉛直線で描画します:

     plot sin(x) with impulses

以下は、x を点で描画し、x**2 をデフォルトの方式で描画します:

     plot x w points, x**2

以下は、tan(x) を関数のデフォルトの方式で、"data.1" を折れ線で描画します:

     plot [ ] [-2:5] tan(x), 'data.1' with l

以下は、"leastsq.dat" を鉛直線で描画します:

     plot 'leastsq.dat' w i

以下は、データファイル "population" を矩形で描画します:

     plot 'population' with boxes

以下は、"exper.dat" をエラーバー付きの折れ線で描画します (エラーバーは3 列、あるいは 4 列のデータを必要とします):

     plot 'exper.dat' w lines, 'exper.dat' notitle w errorbars

もう一つの "exper.dat" のエラーバー付きの折れ線 (errorlines) での描画 方法 (エラーバーは 3 列、あるいは 4 列のデータが必要):

     plot 'exper.dat' w errorlines

以下は、sin(x) と cos(x) をマーカー付きの折れ線で描画します。折れ線は 同じ線種ですが、マーカーは異なったものを使います:

     plot sin(x) with linesp lt 1 pt 3, cos(x) with linesp lt 1 pt 4

以下は、"data" を点種 3 で、点の大きさを通常の 2 倍で描画します:

     plot 'data' with points pointtype 3 pointsize 2

以下は、"data" を描画しますが、4 列目から読んだデータを pointsize の値として使用します:

     plot 'data' using 1:2:4 with points pt 5 pointsize variable

以下は、2 つのデータ集合に対して、幅のみ異なる線を用いて描画します:

     plot 'd1' t "good" w l lt 2 lw 3, 'd2' t "bad" w l lt 2 lw 1

以下は、x*x の曲線の内部の塗りつぶしと色の帯を描画します:

     plot x*x with filledcurve closed, 40 with filledcurve y=10

以下は、x*x の曲線と色の箱を描画します:

     plot x*x, (x>=-5 && x<=5 ? 40 : 1/0) with filledcurve y=10 lt 8

以下は、滑らかに変化する色の線で曲面を描画します:

     splot x*x-y*y with line palette

以下は、2 つの色のついた曲面を、異なる高さで表示します:

     splot x*x-y*y with pm3d, x*x+y*y with pm3d at t

竹野茂治@新潟工科大学
2020-12-08