二変量プロットで 1 つの行が選択されたときに複数の行が選択されるようにスクリプトを作成するにはどうすればよいですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
出力の 1 つが二変量プラットフォームを使用した二変量 (XY) プロットであるスクリプトがあります。 基本的には、デバイスのパラメーターの値を Y 軸に、時間を X 軸にプロットします。 これらの部分には、ソース データテーブルの列に共通の ID 値があります。
現在、プラットフォームには、1 つのマーカーをクリックすると、そのマーカーが基づいている行がデータテーブル内で選択される機能がすでに備わっています (表示ボックス内の他のマーカーは淡色表示になります)。 私が望むのは、ユーザーが 1 つのマーカーをクリックすると、同じ ID 値を持つ他のすべてのマーカーも強調表示されることです (これにより、ユーザーはこの 1 つのデバイスが時間の経過とともにどのように動作したかを確認できるようになります)。 これを行う方法を見つけるのに苦労しています。 プラットフォームにすでに存在するイベント処理コード (つまり、ユーザーがマーカーをクリックしたときに行を選択できるようにするコード、またはユーザーがプロット ウィンドウで四角形をクリックしてドラッグしたときに複数の行を選択できるようにするコード) にアクセスできますか?
これに関してご協力いただければ幸いです。
ありがとう。
Re: 二変量プロットで 1 つの行が選択されたときに複数の行が選択されるようにスクリプトを作成する方法は?参考までに、行状態ハンドラーを使用する別のアプローチ:
デフォルトの名前はここにあります( 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 =関数( {バツ} 、
// 現在選択されている行を取得します
選択された行= [] ;
私= 1 ;
各行について(
もし(選択済み(行の状態() ) 、
選択された行= V連結(選択された行、私)
) ;
私++;
) ;
// 選択範囲がある場合は、必要なすべての行に「展開」します。
もし( N列(選択された行) > 0 、
拡張選択された行= [] ;
のために(私= 1 、私<= N列(選択された行) 、私++、
このID = : ID [選択された行[私]] ;
一致する行= dt << getRowsWhere ( : ID ==このID ) ;
拡張選択された行= V連結(拡張選択された行、一致する行) ;
) ;
dt <<行の選択(拡張選択された行) ;
) ;
) ;
// ハンドラーをテーブルに割り当てます
rsh = dt << MakeRowStateHandler ( selectMatchingID ) ;
// グラフビルダーで試してみる
dt <<グラフビルダー(
サイズ( 530 、 454 ) 、
コントロールパネルを表示( 0 ) 、
変数(バツ( :バツ) 、 Y ( : Y ) ) 、
要素(ポイント(バツ、 Y 、伝説( 5 ) ) 、よりスムーズに(バツ、 Y 、伝説( 6 ) ) )
) ;
Re: 二変量プロットで 1 つの行が選択されたときに複数の行が選択されるようにスクリプトを作成するにはどうすればよいですか?こんにちは、みんな、
うまくいく方法を見つけました。 基本的に、グラフィックス スクリプトを作成し、そこに選択した行から 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: 二変量プロットで 1 つの行が選択されたときに複数の行が選択されるようにスクリプトを作成するにはどうすればよいですか?こんにちは、scwise さん
ありがとうございます。JMP 12 にアップグレードしたときにこの機能が使えるようになるのを楽しみにしています。
私はちょうど二変量表示ボックス内でこの機能を探していました。 上の例を使用するには、2014 年のデータポイントをクリックして、2014 年のすべてのポイントを強調表示したいと思います。 純粋なスクリプトによるソリューションがあることを願っています。
いずれにせよ、再度ご返信いただきありがとうございます。
Re: 二変量プロットで 1 つの行が選択されたときに複数の行が選択されるようにスクリプトを作成するにはどうすればよいですか?ンケレ、
Fit X By Y Bivariate Graph で何かを選択できることについての質問をありがとうございます。その後、データ テーブルに戻って、選択した点と類似した ID を持つ、対応するすべての点が強調表示されて表示されます。あなたがやりたいことに対して、より洗練された「ゼロからスクリプトを作成する」という答えがまだあるかもしれませんが、私は、グラフをデータ フィルターとして使用できる新しい JMP 12 アプリケーション ビルダー機能を使用する簡単な方法を見つけました。そうすれば、この既製のスクリプトの一部を現在の作業で使用できること、またはおそらく、この機能をそのまま使用できることを願っています。Mac 用の JMP 12.1 リリースを使用していることに注意してください。
この場合、ID、X、Y の 3 つの列で説明したような単純なデータ テーブルを作成しました。複数の ID には、異なる X および Y 測定値の複数の行が含まれています。 次に、データテーブルと列の分布を 1 つのウィンドウに結合し (JMP でウィンドウを結合してカスタム レポート ビューを表示します)、以下の初期設定を確認できるようにしました。

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


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