89.3 自動縮尺 (autoscale)

自動縮尺機能 (autoscale) は x, y, z の各軸に対して独立に、または一括し て指定できます。デフォルトでは全ての軸に対して自動縮尺設定を行います。 図の中の一部の描画 (plot) の組のみを元に autoscale したい場合は、そ の対象でない plot にフラグ noautoscale をつけることができます。 以下参照: datafile (78.3)

書式:

     set autoscale {<axes>{|min|max|fixmin|fixmax|fix} | fix | keepfix}
     set autoscale noextend
     unset autoscale {<axes>}
     show autoscale

ここで、< axes> (軸) は x, y, z, cb, x2, y2, xy のいずれ かです。min または max を軸に追加指定すると (xy では使えませんが) それは gnuplot にその軸の最小値、または最大値のみを自動縮尺させるこ とになります。軸も何も指定されていない場合は全ての軸が対象となります。

デフォルトでは、自動縮尺機能は軸の範囲の限界を、描画データ全体を含む、 最も近い目盛りラベル位置に設定します。キーワード fixmin, fixmax, fix, noextend は、次の目盛り位置までの範囲の自動拡大を gnuplot に 行わせないようにします。その場合軸の範囲の限界は、一番端にあるデータ点 の座標値に完全に一致します。set autoscale noextend は、 set autscale fix と同じです。軸の範囲指定コマンドの後ろにキーワード noextend を追加すれば、一つの軸の範囲の延長機能だけ無効にすることも できます。例:

    set yrange [0:*] noextend

set autoscale keepfix は、fix の設定を変更せずに残したまま、すべての 軸を自動縮尺にします。

自動縮尺機能を使うときは、描画範囲は自動的に割り出され、従属変数軸(plot のときは y 軸、splot のときは z 軸) は、関数やデータの値域が 収まるように設定されます。

従属変数軸 (y または z) の自動縮尺機能が指定されていない場合は、現在の y や z の描画範囲がそのまま使われます。

独立変数軸 (plot のときは x 軸、splot のときは x,y 軸) の自動縮尺 機能が指定されている場合は、描画される全てのデータファイルの点が収まる ように定義域をとるようになります。データファイルが 1 つも指定されてい ない場合は、自動縮尺機能はなんの効果もありません。つまり、関数のみが 指定されていてデーターファイルを使わない場合は、x 軸の描画範囲 (z = f(x,y) を描画しているときは y 軸も) は影響をうけません。

範囲に関するより詳しい情報に関しては、以下参照: set xrange (89.105)

媒介変数モード (parametric) でも自動縮尺機能は有効です (以下参照:set parametric (89.60))。この場合、より多くの従属変数があるので、x, y, z 各軸に関して、より多くの制御が行われます。媒介変数モードでの独立変数 (仮 変数) は plot では t で splot では u, v です。そして媒介変数モード では、自動縮尺機能は (t, u, v, x, y, z) の全ての描画範囲を制御し、x, y, z の範囲の自動設定を完全に行います。

自動縮尺機能は、極座標モード (polar mode) でも plot の媒介変数モード と同様に機能しますが、極座標モードでは set dummy で独立変数を t から 変更するできる (以下参照: set dummy (89.23)) という拡張があります。

目盛りが第 2 の軸に表示され、しかもこれらの軸に対する描画が行われなか った場合には、x2range と y2range は xrange と yrange の値を受け継ぎま す。これは、範囲のずらしの実行や、範囲を整数個の目盛り幅に自動伸縮する 「前」に行いますので、場合によって予期しない結果をもたらす可能性があり ます。これを避けるのに、第 2 軸の範囲を第 1 軸の範囲に明示的にリンク (link) する方法があります。以下参照: set link (89.38)

例:

以下は y 軸の自動縮尺機能を指定します (他の軸には影響を与えません):

     set autoscale y

以下は y 軸の最小値に対してのみ自動縮尺機能を指定します (y 軸の最大値、および他の軸には影響を与えません):

     set autoscale ymin

以下は x2 軸の隣の目盛りへの自動範囲拡大機能を無効にし、よって描画データ内、または関数に対する丁度の描画範囲を維持します:

     set autoscale x2fixmin
     set autoscale x2fixmax

以下は x, y 両軸の自動縮尺機能を指定します:

     set autoscale xy

以下は x, y, z, x2, y2 全軸の自動縮尺機能を指定します:

     set autoscale

以下は x, y, z, x2, y2 全軸の自動縮尺機能を禁止します:

     unset autoscale

以下は z 軸のみについて自動縮尺機能を禁止します:

     unset autoscale z



Subsections
竹野茂治@新潟工科大学
2017年8月23日