ユーザーが指定した設定で選択したすべての列の変動プロットループこんにちは、
私はJMPスクリプトについてかなり初心者です。ちょっとしたサポートが必要です。現在、次のことを行うアプリケーションを設計しています。
ステップ1: ユーザーがボタンをクリックすると、変動チャートウィンドウが開き、プロットするすべての列、X軸のグループ化、および現在のアクティブなデータテーブルのすべての設定を指定します。
obj = dt << 変動チャート();
ステップ2: ユーザーが指定した項目を別の変数で取得します。
col_list = obj で選択されたすべての列のリスト
x_grouping = 指定されたすべてのx変数
.. Variability Chart() のすべての引数
ステップ3: すべての情報を抽出した後、各列変数に対してループを実行しますが、
i==1 (最初の列) の場合、レポートにグラフをプロットします...ユーザーはいくつかの変更を行います (例: 凡例の追加、背景色の指定など)
ここで、このテンプレート (このプロット内のすべての設定) をすべての列に適用し、各列の新しいウィンドウでレポートを作成します。
次の問題に直面しています:ステップ2とステップ3 Variability Chart()の引数を抽出してアクションを実行する方法
PS: 他のチャートタイプにもこれを並行して実装する予定です。
案内してください
自動化とスクリプト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 ) ) ) );Re: ユーザー指定の設定による選択されたすべての列の変動プロット ループ@txnelsonご意見ありがとうございます。実際、私の主な目標は、各列に別々のレポート ウィンドウを用意することです。たとえば、Y に 5 つの列を選択すると、レポートには 5 つのパラメーターすべてのプロットが表示されます。アウトライン ボックスの最初のチャートに凡例を追加したり、色を変更したりする場合、最初のプロットに加えた変更も使用しながら、各プロットを別のウィンドウに分離するスクリプトを記述したいと思います。これを実現する方法はありますか。提案してください。
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: ユーザー指定の設定による選択されたすべての列の変動プロット ループ最も簡単な方法は、変動チャートランチャー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;