詳細に提供していただいた例のおかげで、すべての問題 (Q1、Q2) が解決されました。
theList = {9, 10, [-1, -1, -1, -1]}; <BR />mat = Shape( Matrix( Index(<FONT color="#FF0000"> 0,</FONT> N Items( uni_bat ) - 1 ) ), <BR />N Items( uni_bat ) ) |/ [-1, -1, -1, -1, -1, -1, -1, -1];
上記のように、あなたが私にくれたスクリプトでは、N 個の項目の前に 0 を追加することで、結果を完全に希望どおりにすることができました。
いつも親切な回答をありがとうジム!!!
COVID19にご注意ください!
Legend Position の動的部分を生成し、必要なリストを作成できます
Names Default To Here( 1 );
uni_bat = {a, b, c, d};
theList = {9, 10, [-1, -1, -1, -1]};
mat = Shape( Matrix( Index( 1, N Items( uni_bat ) - 1 ) ), N Items( uni_bat ) - 1 ) |/
[-1, -1, -1, -1, -1, -1, -1, -1, -1,-1, -1];
insert into(theList, mat, 2);
show(theList);
次に、以下の単純化された例に示すように、Legend Position メッセージにプラグインします。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :height ),
Y( :weight ),
Overlay( :sex )
),
Elements(
Points( X, Y, Legend( 3 ) ),
Smoother( X, Y, Legend( 4 ) )
)
);
theList = {3, 4, [2, 1]};
mat = [4,3];
insert into(theList,mat,2);
eval(parse("Report( gb )[LegendBox( 1 )] << Legend Position( "||char(theList)||" );"));変更しようとしている JSL コードは、Legend Box() メッセージに送信されるメッセージを使用して、より簡単に処理できます。以下は、凡例の位置を変更する例を示すスクリプト インデックスからのエントリです。このメソッドを使用すると、IF() ステートメント構造は、例で想定したとおりに機能します。

に行く
ヘルプ=>スクリプト インデックス
上記の表示にアクセスするには