こんにちは、
以下に示すように、領域が特定の勾配の領域を表すグラフの背景領域を作成しようとしています。

ここで、色付きの領域は、値X / Y(グラフのffc)に基づいており、範囲は<1から>10です。 XとYの範囲は観測によって異なるため、ポリゴン関数を使用して領域または等高線をマッピングし、次のように入力として結果の軸の最小値と最大値を取得します。
Polygon({0、0}、{XMin、YMax}、{XMax、YMax}、{XMax、XMax * 10})
これで十分に機能します。 私の問題は、各領域にラベルを付けるテキストの場所を指定することです。ポリゴンに類似したデータに基づいてテキストが動的に移動する方法をまだ見つけていないため、事後に入力して正確な座標を指定する必要はありません。 。 誰かがグラフ内である種の動的テキストを実現するためのアイデア/推奨事項を提供できれば、それは大いにありがたいです。 ポリゴンやテキスト関数を使用するよりも、これを行うためのより良い方法があると確信していますが、私はそれを理解できないようです、またはこれを行うための良い方法があるかどうか。 また、これは純粋に美学のためであることも理解していますが、解決策を見つけるのに時間がかかりすぎたため、うまくいくものを見つけることにしました。
返信をしてくださった方、ありがとうございました。
領域ラベルを描画するためのText()関数を見つけたと思いますが、それらを配置するための計算に問題があります。 以下は、かなりうまく機能するコードです。 このコードはそれらをテストしないため、最初または最後のラベルがxmin/yminエッジによってクリップされる場合は調整が必要になる場合があります。 テキストの位置を領域の中央の角度にあると計算しましたが、代わりにそれらをハードコーディングすることをお勧めします。 つまり、各ゾーンの停止角度のリストと一緒にテキスト角度のリストを用意します。

xmin = 400;
xmax = 1800;
ymin = 0;
ymax = 3600;
New Window( "fills",
gb = Graph Box(
Frame Size( 500, 500 ),
X Scale( xmin, xmax ),
Y Scale( ymin, ymax ),
Marker(
Marker State( 8 ),
J( 20, 1, Random Normal( 1000, 50 ) ),
J( 20, 1, Random Normal( 1000, 300 ) )
)
)
);
framebox = gb[frame box( 1 )];
framebox << Add Graphics Script(
max diagonal = Max( xmax, ymax ) * Sqrt( 2 );
Fill Color( "red" );
stops = {0, 1, 2, 4, 10};
For( i = 2, i <= N Items( stops ), i++,
// fill wedge
Transparency( 0.07 * i );
a1 = ATan( stops[i] );
a0 = ATan( stops[i - 1] );
Polygon( {0, 0},
{Cos( a1 ) * max diagonal, Sin( a1 ) * max diagonal},
{Cos( a0 ) * max diagonal, Sin( a0 ) * max diagonal} );
// text label in center of wedge, constrained to graph bounds
text angle = Mean( a0, a1 );
xt = Cos( text angle ) * max diagonal;
yt = Sin( text angle ) * max diagonal;
scale to fit = Min( xmax / xt, ymax / yt ) * 0.9;
Transparency( 0.9 );
Text(
Center justified,
{xt * scale to fit, yt * scale to fit},
Char( stops[i - 1] ) || " < r < " || Char( stops[i] )
);
);
);