ユーザー指定の設定を使用した、選択したすべての列の変動プロット ループこんにちは、みなさん。
私は JMP スクリプトの初心者です。小さなサポートが必要です。私は現在、次のことを行うアプリケーションを設計しています
ステップ 1: ユーザーがボタンをクリックしたとき。変動チャート ウィンドウが開き、プロットするすべての列、X 軸のグループ化、および現在アクティブなデータ テーブルからのすべての設定を指定します。
obj = dt << 変動チャート();
ステップ 2: ユーザーが指定した項目を次のような個別の変数で取得したい
Col_list = obj で選択されたすべての列のリスト
x_grouping = すべての x 個の変数が指定されています
.. Variability Chart() のすべての引数
ステップ 3: すべての情報を抽出した後、各列変数に対してループを実行しますが、
i==1 (最初の列) の場合、レポートにグラフをプロットします ... ユーザーはいくつかの変更を行います (例: 背景色を指定する凡例の追加など)
次に、このテンプレート(このプロットのすべての設定)をすべての列に適用し、新しいウィンドウで各列のレポートを作成します。
次の問題に直面しています: ステップ 2 とステップ 3 Variability Chart() の引数を抽出してアクションを実行する方法
PS: 他のチャート タイプにもこれを並行して実装する予定です \
ご案内ください
自動化とスクリプト作成Re: ユーザー指定の設定を使用した、選択されたすべての列の変動プロット ループ最も簡単なオプションは、変動チャート ランチャー UI を自分で構築することです。それをしたくない場合は、<< Get Script を使用して起動されたスクリプトを取得し、そこから列を解析することもできます。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution();
dist = Current Report()[OutlineBox(1)] << Get Scriptable Object;
dist << get script;Re: ユーザー指定の設定を使用した、選択されたすべての列の変動プロット ループステップ1
obj = dt << Variability Chart();
[変動チャート] ダイアログ ボックスが開き、ユーザーが [OK] をクリックすると、その時点ですべてのチャートが実行されます。
ただし、変動チャートが実行されると、変動チャート プラットフォームから返されたスクリプトをクエリして、X と Y を取得できます。
obj = Variability Chart( Y( :NPN1, :PNP1 ), Model( "Main Effect" ), X( :SITE ) );
theScript = char(obj << get script);
theYsList = words(word(1,substr(theScript,contains(theScript,"Y(")+2),")"),",");
theXsList = words(word(1,substr(theScript,contains(theScript,"X(")+2),")"),",");
ステップ 2 では、表示されたプロットを直接クエリして、さまざまな設定を取得できます。フレームサイズ、最小値と最大値、およびさまざまな軸の増分などを取得する方法については、スクリプト インデックスを参照してください。これらは、変動チャートの追加アプリケーションに適用する必要があります。
あなたが提案したアプローチは、利益よりも問題の方が多いと思います。 [変動チャート] ダイアログ ボックスを使用するのではなく、[変動チャート] ダイアログ ボックスに似た独自のダイアログ ボックスを作成することをお勧めします。これにより、必要な情報をすべて事前に取得できるように設定され、ステップ 2 と 3 が実行されます。実装がはるかに簡単になります。
独自の新しいウィンドウ ダイアログ ボックスを作成する方法については、『スクリプト ガイド』を参照してください。
Re: ユーザー指定の設定を使用した、選択されたすべての列の変動プロット ループ@txnelsonご指摘いただきありがとうございます。実際、私の主な目標は、列ごとに個別のレポート ウィンドウを用意することです。たとえば、Y に 5 つの列を選択すると、レポートでは 5 つのパラメーターすべてのプロットが得られます。アウトラインボックスの最初のグラフに凡例を追加したり、色を変更したりする場合、最初のプロットに行った変更も使用しながら、別のウィンドウで各プロットを分離するスクリプトを作成したいと考えています。これを達成する方法はありますか。提案してください
Re: ユーザー指定の設定を使用した、選択されたすべての列の変動プロット ループこれは、私があなたがやりたいと思うことを処理する 1 つの方法の例です。このスクリプトは非常に不完全であり、多くの例外処理を追加する必要がありますが、出発点にはなります。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
nw = New Window( "Col List Box Example",
modal,
H List Box(
Col List Box( all, width( 250 ) ),
V List Box(
Lineup Box( N Col( 2 ),
ybb = Button Box( "Y Col" ),
Y = Col List Box( Show( "run" ) ),
xbb = Button Box( "X Col" ),
x = Col List Box(),
Button Box( "Cancel",
nw << close window;
Throw();
),
Button Box( "OK",
ycols = y << get items;
xcols = x << get items;
)
)
)
)
);
// ycols and xcols now have been populated and you can then bring up one graph and
// let the user make the changes
nw = New Window( "Graphical Settings",
modal,
vc = dt << Variability Chart( Y( ycols[1] ), Model( "Main Effect" ), X( xcols[1] ) );
vc << on close(
// In the closing of the Variability Chart capture the script
theScript = Char( vc << get script );
);
);
// Run all of the graphs
For Each( {theCol, index},ycols, Eval( Parse( Substitute( theScript, ycols[1], theCol ) ) ) );