こんにちは、みんな、
ここ 1 週間ほどこのアイデアに取り組んできましたが、 @gzmorgan0この投稿を手伝ってくれました
https://community.jmp.com/t5/Discussions/creating-an-index-for-columns-to-point-to-the-graph/mp/71555#M35439
たとえば、5 つの連続カラムと 2 つの公称カラムをループし、10 個のカラム (nw2 など) の一元配置分析をプロットするとします。 p 値とその他のパラメーターをテーブルで取得します。 テーブルを p 値の昇順に並べ替えたいと考えています。 新しいウィンドウ (nw1) にテーブルを表示し、テーブル内の各行 (行にはグラフに関連する適切な X 軸と Y 軸の両方があるため) が nw2 の適切なグラフを参照するようにすることはできますか? テーブル ボックス (データ テーブルの列ボックス) は正しい戦略ですか、それとも検討すべき他の機能がありますか?
ご意見、ご意見、ご提案をいただければ幸いです。
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
ynames = {"weight", "height"};
xnames = {"sex", "age"};
pnames = {};
nw2 = New Window( "Custom Display", vl = V List Box() );
nw2 << Size Window( 724, 395 );
For( i = 1, i <= N Items( ynames ), i++,
For( j = 1, j <= N Items( xnames ), j++,
Insert Into( pnames, ynames[i] || " by " || xnames[j] );
vl << Append(
Oneway(
Y( Column( dt, ynames[i] ) ),
X( Column( dt, xnames[j] ) ),
Box Plots( 1 ),
Comparison Circles( 0 ),
X Axis Proportional( 0 ),
Means Diamonds( 1 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway",
OutlineBox,
{Set Title( Eval Insert( "^ynames[i]^ ^xnames[j]^ Comparison Report" ) )}
)
)
)
);
); //end for j
); //end for i
plb = List Box( pnames, width( 100 ), maxSelected( 1 ) );
nw1 = New Window( "Filter", plb );
_xx = (nw2 << Child) << xpath( "//OutlineBox[@helpKey='Oneway Report']" );
plb << Set Function(
Function( {this},
k = (this << get Selected Indices)[1];
nw2 << Scroll Window( _xx[k] );
)
);
nw1 << Bring Window to Front;
nw2 << Bring Window to Front;
nw1 << Move Window( 10, 10 );
nw2 << move Window( 180, 10 );
//Add a try in case the window is already closed
nw2 << On close( Try( nw1 << Close Window() ) );はい、シングル ウィンドウ ビューアが最適だと考えていましたが、ネストされたスクロール ボックスではスクロール ウィンドウが機能しないという同じ問題がありました。 開発者がこの問題を認識できるように、JMP に報告しました。JMP サポートは、位置をより確実に見つけるために << Get Offset を使用する方法を示す添付スクリプトを提供しました。
gzmorgan があなたの質問に答えたようですが、あなたは私にプライベート メッセージを送ってくれたので、スクロール ボックスについて詳しく説明しようと思いました。添付されているのは、1 つのウィンドウと 2 つのウィンドウを使用するための gzmorgan の実装の編集です。
スクロール ボックスの欠点は、何らかの理由で << Scroll Window() コマンドをサポートしていないことです。
これには、私が文書化したものよりも少し時間がかかりました。サンプルスクリプトが添付されています。
あなたの質問をよく理解していませんが、あなたのコードはあなたが求めていることを実行しているようです。ただし、1 つのウィンドウが 2 番目のウィンドウの結果に影響を与えることはありません。フィルターと一元配置プロットの両方を同じウィンドウに配置し、スクロール ボックスでそれらを分割することをお勧めします。