こんにちは、みんな、
約 30 個のチャートの動的変動チャートを作成した後、スクリプトで問題が発生しています。少量を別のウィンドウにサブセット化したいのですが、それができません。会社のポリシーにより、コードを投稿することはできませんが、以下に示すように、JMP サンプル データを使用して実行しようとしていることの例を使用しました。
dt = Open("C:\Program Files\SAS\JMP\17\Samples\Data\Quality Control\Braces.jmp");
vc = Variability Chart(
Y( :"# defects"n ),
Model( "Main Effect" ),
X( :Date ),
Variability Analysis(
:"# defects"n,
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 )
),
By( :Unit size )
);
subset_vc = New Window("Only some vc", vlis = V List Box());
frameboxes_to_subset = {1, 3, 5}; // Want to get when unit size = 4, 8, 12
vc_rpt = vc << Report;
show(N Items( (vc_rpt << XPath( "//FrameBox" )) ));
structure = vc_rpt << Show tree structure;
for(i = 1, i <= N Items(frameboxes_to_subset), i++,
vlis << append(vc_rpt[FrameBox(frameboxes_to_subset[i])]);
);ログを見ると、元の vc_rpt には予想どおり 6 つのフレームボックスがあることが分かりますが、「ツリー構造の表示」で表示されるフレームボックス番号に基づいてサブセット化しようとすると、グラフは追加されません。また、追加の V リスト ボックスでラップしてみましたが、同様に新しいウィンドウに追加できるものはありませんでした。どなたか助けていただければ幸いです。ありがとうございます!
ありがとう、ジム。
興味深いですね。ウィンドウはジャーナルの「ページ」を表していると思っていたので、1 つしかないので、それについて調べてみます。助言に感謝します。
すべての画像が 1 つのレポートに含まれていると考えるのは間違いです。実際には 6 つのレポートがあり、それぞれに 1 つの画像が含まれています。
したがって、指定されたレポートをループし、各レポートからフレームボックス(1)を取得するようにコードを変更する必要があります。
dt = Open("C:\Program Files\SAS\JMP\17\Samples\Data\Quality Control\Braces.jmp");
vc = Variability Chart(
Y( :"# defects"n ),
Model( "Main Effect" ),
X( :Date ),
Variability Analysis(
:"# defects"n,
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 )
),
By( :Unit size )
);
subset_vc = New Window("Only some vc", vlis = V List Box());
frameboxes_to_subset = {1, 3, 5}; // Want to get when unit size = 4, 8, 12
vc_rpt = vc << Report;
//show(N Items( (vc_rpt << XPath( "//FrameBox" )) ));
//structure = vc_rpt << Show tree structure;
for(i = 1, i <= N Items(frameboxes_to_subset), i++,
vlis << append(vc_rpt[frameboxes_to_subset[i]][FrameBox(1)]);
);

また、FrameBox()だけではなく、PictureBox()も取得したいと考えているかもしれません。

subset_vc = New Window("Only some vc", vlis = V List Box());
frameboxes_to_subset = {1, 3, 5}; // Want to get when unit size = 4, 8, 12
vc_rpt = vc << Report;
//show(N Items( (vc_rpt << XPath( "//FrameBox" )) ));
//structure = vc_rpt << Show tree structure;
for(i = 1, i <= N Items(frameboxes_to_subset), i++,
vlis << append(vc_rpt[frameboxes_to_subset[i]][PictureBox(1)]);
);