81.95 Xrange

コマンド set xrange は表示される水平方向の範囲を指定します。他の軸 にも同様のコマンドが存在しますし、極座標での動径 r, 媒介変数 t, u, v にも存在します。

書式:

     set xrange { [{{<min>}:{<max>}}] {{no}reverse} {{no}writeback} }
                | restore
     show xrange

ここで < min> < max> には定数、数式、または '*' で、'*' は自動縮尺機 能を意味します。自動縮尺機能に関する詳細は下に述べます。日時データの場 合、範囲は set timefmt の書式に従った文字列を引用符で囲む必要があり ます。省略された値は変更されません。

yrange, zrange, x2range, y2range, cbrange, rrange, trange, urange, vrange は同じ書式を使用します。

オプション reverse は軸の方向を逆にします。例えば set xrange [0:1] reverse は、1 が左、0 が右であるような軸にします。 これは、もちろん set xrange [1:0] と同じですが、reverse は主に自動 縮尺 (autoscale) で用いられることを意図しています。

自動縮尺機能: < min> (同様のことが < max> にも適用されます) がアスタリス ク "*" の場合は自動縮尺機能がオンになります。その場合のその値に、下限 < lb> 、または上限 < ub> 、またはその両方の制限を与えられます。書式は以下の通りです。

     { <lb> < } * { < <ub> }

例えば
     0 < * < 200

< lb> = 0, < ub> = 200 となります。そのような設定では、< min> は自動縮 尺されますが、その最終的な値は 0 から 200 の間になります (記号は '< ' ですが両端の値も含みます)。下限か上限を指定しない場合は、その '< ' も省 略できます。< ub> < lb> より小さい場合は、制限はオフになり、完全な自 動縮尺になります。 この機能は、自動縮尺だけれども範囲に制限がある測定データの描画や、外れ 値のクリッピング、またはデータがそれほどの範囲を必要としていなくても最 小の描画範囲を保証するのに有用でしょう。

オプション writeback は、set xrange で占められているバッファの中に 自動縮尺機能により作られた範囲を保存します。これは、いくつかの関数を同 時に表示し、しかしその範囲はそのうちのいくつかのものから決定させたい場 合に便利です。writeback の作用は、plot の実行中に機能するので、その コマンドの前に指定する必要があります。最後に保存した水平方向の範囲は set xrange restore で復元できます。例を上げます。


     set xrange [-10:10]
     set yrange [] writeback
     plot sin(x)
     set yrange restore
     replot x/2

この場合、y の範囲 (yrange) は sin(x) の値域として作られた [-1:1] の方 になり、x/2 の値域 [-5:5] は無視されます。上記のそれぞれのコマンドの後 に show yrange を実行すれば、上で何が行なわれているかを理解する助け になるでしょう。

2 次元描画において、xrangeyrange は軸の範囲を決定し、trange は、媒介変数モードの媒介変数の範囲、あるいは極座標モードの角度の範囲を 決定します。同様に 3 次元媒介変数モードでは、xrange, yrange, zrange が軸の範囲を管理し、urangeyrange が媒介変数の範囲を管理します。

極座標モードでは、rrange は描画される動径の範囲を決定します。< rmin> は動径への追加の定数として作用し、一方 < rmax> は動径を切り捨てる (clip) ように作用し、< rmax> を越えた動径に対する点は描画されません。xrangeyrange は影響されます。これらの範囲は、グラフが r(t)-rmin のグラ フで、目盛りの見出しにはそれぞれ rmin を加えたようなものであるかのよう にセットされます。

全ての範囲は部分的に、または全体的に自動縮尺されますが、データの描画で なければ、パラメータ変数の自動縮尺機能は意味がないでしょう。

範囲は plot のコマンドライン上でも指定できます。コマンドライン上で与 えられた範囲は単にその plot コマンドでだけ使われ、set コマンドで設 定された範囲はその後の描画で、コマンドラインで範囲を指定していないもの 全てで使われます。これは splot も同じです。

例:

x の範囲をデフォルトの値にします:

     set xrange [-10:10]

y の範囲が下方へ増加するようにします:

     set yrange [10:-10]

z の最小値には影響を与えずに (自動縮尺されたまま)、最大値のみ 10 に設 定します:

     set zrange [:10]

x の最小値は自動縮尺とし、最大値は変更しません:

     set xrange [*:]

x の最小値を自動縮尺としますが、その最小値は 0 以上にします。

     set xrange [0<*:]

x の範囲を自動縮尺としますが、小さくても 10 から 50 の範囲を保持します (実際はそれより大きくなるでしょう):

     set xrange [*<10:50<*]

自動縮尺で最大範囲を -1000 から 1000、すなわち [-1000:1000] 内で自動縮 尺します:

     set xrange [-1000<*:*<1000]

x の最小値を -200 から 100 の間のどこかにします:

     set xrange [-200<*<100:]

竹野茂治@新潟工科大学
2012年10月3日