二変量プロットで行が選択されたときに、複数の行を選択するスクリプトを作成する方法は?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
出力の 1 つが二変量プラットフォームを使用した二変量 (XY) プロットであるスクリプトがあります。 基本的に、y 軸にデバイスのパラメーターの値を、x 軸に時間をプロットします。 これらのパーツは、ソース データテーブルの列に共通の ID 値を持ちます。
現在、プラットフォームには、1 つのマーカーをクリックすると、そのマーカーが基づいている行がデータテーブルで選択されるという機能が既に備わっています (表示ボックス内の他のマーカーはフェードします)。 私が望むのは、ユーザーが 1 つのマーカーをクリックすると、同じ ID 値を持つ他のすべてのマーカーも強調表示されることです (ユーザーは、この 1 つのデバイスが時間の経過とともにどのように動作したかを確認できます)。 私はこれを行う方法を見つけるのに苦労しています。 プラットフォーム用に既に存在するイベント処理コードへのアクセスはありますか (つまり、ユーザーがマーカーをクリックしたときに行を選択したり、ユーザーがプロット ウィンドウで四角形をクリックしてドラッグしたときに複数の行を選択したりできるようにします)?
これに関する任意の助けをいただければ幸いです。
ありがとう。
Re: 二変量プロットで行が選択されたときに、複数の行を選択するスクリプトを作成するにはどうすればよいですか?参考までに、行状態ハンドラーを使用した別のアプローチ:
名前のデフォルトはここ( 1 ) ;
// テーブル
dt =新しいテーブル( 「二変量ID選択」 、
行を追加( 10 ) 、
新しい列( 「ID」 、数値、 「公称」 、フォーマット( "一番" 、 12 ) 、設定値( [ 2014年、 2011年、 2012年、 2013年、 2014年、 2011年、 2013年、 2012年、 2011年、 2014年] ) ) 、
新しい列( "バツ" 、数値、 「連続」 、フォーマット( "一番" 、 12 ) 、設定値( [ 1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 、 10 ] ) ) 、
新しい列( 「よ」 、数値、 「連続」 、フォーマット( "一番" 、 12 ) 、設定値( [ 20 、 21 、 25 、 28 、 30 、 31 、 33 、 36 、 37 、 40 ] ) ) 、
ラベル列の設定( : ID )
) ;
// 行状態ハンドラ関数
selectMatchingID =関数( {バツ} 、
// 現在選択されている行を取得します
selectedRows = [] ;
私= 1 ;
行ごとに(
もしも(選択済み(行の状態() ) 、
selectedRows = V連結( selectedRows 、私)
) ;
私++;
) ;
// 選択がある場合は、必要なすべての行に「展開」します
もしも( N行( selectedRows ) > 0 、
ExpandedSelectedRows = [] ;
為に(私= 1 、私<= N行( selectedRows ) 、私++、
このID = : ID [ selectedRows [私]] ;
一致する行= dt << getRowsWhere ( : ID ==このID ) ;
ExpandedSelectedRows = V連結( ExpandedSelectedRows 、一致する行) ;
) ;
dt << selectRows ( ExpandedSelectedRows ) ;
) ;
) ;
// ハンドラーをテーブルに割り当てます
rsh = dt << MakeRowStateHandler ( selectMatchingID ) ;
// グラフビルダーで試してみてください
dt <<グラフビルダー(
サイズ( 530 、 454 ) 、
コントロールパネルを表示( 0 ) 、
変数(バツ( :バツ) 、よ( :よ) ) 、
要素(ポイント(バツ、よ、伝説( 5 ) ) 、スムーズ(バツ、よ、伝説( 6 ) ) )
) ;
Re: 二変量プロットで行が選択されたときに、複数の行を選択するスクリプトを作成するにはどうすればよいですか?こんにちは、みんな、
うまくいく方法を見つけました。 基本的には、グラフィック スクリプトを作成し、選択した行から ID を取得するコードを記述し、select where ステートメントを使用してその ID を持つすべての行を照合するだけです。 これは、二変量ウィンドウで多数の点をクリックしてドラッグした場合にも機能します。 以下サンプルコード。
xParam ="Column Name 1 Here";
yParam = "Column Name 2 Here";
idParam = "Column Name 3 Here";
//tableRef = data table reference
bivPlatform = Bivariate(
Y( Eval(yParam) ),
X( Eval(xParam) ),
);
bivReport = bivPlatform << Report;
bivFrame = bivRawReport[FrameBox( 1 )]; //Assign reference to framebox
// Add Graphics script to select all rows with matching ID when one row is selected on the graph
bivFrame << Add Graphics Script( 2, //Order graphics script is run with respect to other elements in Frame box (Not really needed here)
//Get selected IDs
selectedIDMatrix = tableRef:idParam[ ( tableRef << Get Selected Rows() ) ];
//Get unique IDs (optional I guess)
idArray = Associative Array(selectedIDMatrix);
uniqueIDMatrix = idArray << Get Keys;
//Select other datapoints with matching IDs
tableRef << Select Where( Contains( As List(uniqueIDMatrix), As Column(tableRef, idParam) ) );
);
Re: 二変量プロットで行が選択されたときに、複数の行を選択するスクリプトを作成するにはどうすればよいですか?こんにちは。
これに感謝し、JMP 12 にアップグレードしたときにこの機能を利用できることを楽しみにしています。
二変量表示ボックス内でこの機能を探していました。 上記の例を使用するには、2014 年のデータポイントをクリックして、2014 年のすべてのポイントを強調表示します。 そこに純粋なスクリプトソリューションがあることを願っています。
いずれにせよ、返信ありがとうございます。
Re: 二変量プロットで行が選択されたときに、複数の行を選択するスクリプトを作成するにはどうすればよいですか?ネケレ、
Fit X By Y 二変量グラフで何かを選択できるという質問に感謝しますが、選択したポイントと同様の ID を持つ強調表示されたデータ テーブルに戻って対応するすべてのポイントを確認します。あなたがやりたいことに対するより洗練された「ゼロからのスクリプト作成」の答えがまだあるかもしれませんが、グラフをデータフィルターとして使用できる新しい JMP 12 Application Builder 機能を使用する簡単な方法を見つけました。次に、この既製のスクリプトの一部を現在の作業で使用できることを願っています。あるいは、そのままの状態ですぐに使える機能を使用できるようになるかもしれません。Mac 用の JMP 12.1 リリースを使用していることに注意してください。
この場合、ID、X、Y の 3 つの列で説明したような単純なデータ テーブルを作成し、いくつかの ID には異なる X と Y の測定値の複数の行があります。 次に、データテーブルと列の分布を 1 つのウィンドウ (JMP でウィンドウを結合してカスタム レポート ビューを取得) に結合し、初期設定を確認できるようにしました。

次に、Y による X の二変量近似を示すグラフを作成しました。この時点でポイントを選択すると、実際には X 座標と Y 座標のみに基づいて選択されます。そのポイントの ID ラベルを表示することは問題ありませんが、これは正確なポイントをデータ テーブルにシェーディング (選択) するだけです。したがって、問題は、二変量が類似の X 座標と Y 座標のみに基づいて一致を検索し、共通の ID では検索しないことです。次のカスタム レポート ビューを参照してください。
そこで、2 変量の横に「ヘルパー」グラフを作成して、1 回のクリックですべての ID ポイントを選択できるようにすることで、これを非常に簡単な 2 ステップのプロセスにすることができるのではないかと考えました。これを行うために、ID の分布を作成し (選択機能を向上させるために公称データ列タイプにしました)、モザイク プロット以外のすべての表示オプションをオフにしました。次に、分布グラフと二変量グラフの両方を 1 つのウィンドウに結合して、別のカスタム レポート ビューを取得しました。次に、レポート ヘッダーの赤い三角形の下にある [アプリケーションの編集] ボタンを選択して、アプリケーション ビルダー ワークスペースを表示します (基になるデータテーブルを選択した後)。Application Builder では、最初の分布モザイク プロット グラフを選択し、右クリックして [フィルターとして使用] を選択するだけで簡単に実行できます。これで、2 クリックでソリューションを作成できます...最初に、二変量フィット Y By X チャートで関心のあるポイントを選択し、次にスライドして、部分的に陰影が付けられたモザイクの完全な ID を選択 (クリック方向) します。これで、データ テーブルで類似の ID がすべて強調表示されます。また、モザイク プロットで選択した後、同じ ID 番号に対応するすべてのポイントを Bivariate Fit Y By X チャートでグラフィカルに確認できます。


これで、レポート ヘッダーの下の赤い三角形に移動し、スクリプトをスクリプト ウィンドウに保存して、このビューの作成時に生成された基になるスクリプト作業を確認できます。繰り返しますが、これは Bivariate Fit Y By X から直接実行できるほど巧妙ではありませんが、すぐに使用できるソリューションを示しており、スクリプトの一部を自動的に生成する方法を示しています。この JMP 作業ファイルにスクリプトを保存して添付し、チェックアウトすることもできます。
お役に立てれば!