99.61 Nonlinear

書式:
     set nonlinear <axis> via f(axis) inverse g(axis)
     unset nonlinear <axis>

このコマンドはコマンド set link に似ていますが、2 つのリンクされた軸 の一方のみを表示する点が違います。隠される軸は線形軸のままです。表示す る軸に沿う座標は、g(x) を適用して隠れている軸の座標から割り当てられ、 f(x) は表示する軸の座標を隠れている線形軸に対応させます。

例:


     set xrange [1:1000]
     set nonlinear x via log10(x) inverse 10**x

この例は対数軸を作成していて、set log x と同じ効果を生むもう一つの方 法です。この場合隠れている軸は、[log10(xmin):log10(xmax)] を計算するこ とで [0:3] という範囲を持ちます。変換式と逆変換式は、その両方を指定す る必要があります。

例:


     set xrange [-3:3]
     set nonlinear x via norm(x) inverse invnorm(x)

この例は確率スケール ("プロビット") の x 軸を作成し、累積正規分布関数 Phi(x) のグラフが線形の y 軸に対して直線となります。

例:


     logit(p) = log(p/(1-p))
     logistic(a) = 1. / (1. + exp(-a))
     set xrange [.001 : .999]
     set nonlinear y via logit(y) inverse logistic(y)
     plot logit(x)

この例はロジットスケールの y 軸を作成し、線形の x 軸に対する logit(x) のグラフが直線になります。

例:


     f(x) = (x <= 100) ? x : (x < 500) ? NaN : x-390
     g(x) = (x <= 100) ? x : x+390
     set xrange [0:1000] noextend
     set nonlinear x via f(x) inverse g(x)
     set xtics add (100,500)
     plot sample [x=1:100] x, [x=500:1000] x

この例は "切断軸" を作成します。x 座標は左に 0 から 100、右に 500 から 1000 が並び、その間に 10 幅の小さな隙間ができます。100 < x < 500 の間 のデータは描画されず、これは期待通りの動作をします。

竹野茂治@新潟工科大学
2020-05-27