私は一連のリンクされた選択を構築していますによる-グループ 二変量プロット。プロットは、長い形式のテーブル(モードごとにIDごとに1行)から取得されます。</CODE></P>
<BR />
<BR />
<BR />
<PRE><CODE class=" language-jsl">dt << Bivariate(
Y( dt:Y ),
X( dt:X ),
By( :MODE )
);
私が望むこと:による-グループグラフ、同じを共有する他のグラフのすべてのポイントが必要です:ID選ばれるようにしたいのですが、テーブルをワイド形式(IDごとに1行)に変更せずに実現したいです。
試したこと:行状態ハンドラを使用すると、一致するIDのすべての行を再選択できることがわかりました。現在の実装:
f = Function( {row},
rows = dt << Get Selected Rows;
units = Associative Array( dt:ID[rows] ) << Get Keys;
dt << Select Where( Contains( units, :ID ) );
);
rs = dt << Make Row State Handler( f );
問題点:これはデータテーブル内の最初の選択に対してのみ機能します。その後、ハンドラは存在しないかのように動作します。
私の質問:
1. 最初の選択後、行状態ハンドラが動作しなくなるのはなぜですか?(ハンドラ内で行状態を変更することが、ハンドラの動作を停止させているのではないかと考えています。)
2. 繰り返し選択してもハンドラーがアクティブな状態を維持するように修正する方法はありますか?
3. IDリンク選択に対するより良いアプローチはありますか?による代わりに検討すべきグループプロットはありますか?
前もって感謝します。
おそらくログに記録されるメッセージが表示され、何が起こっているのかがわかるでしょう。
Loop detected earlier
そして時にはより役立つもの
Row State Handler is in a loop
Row States should not be changed by Row State Handler.
はい、メッセージは受け取りました。
Loop detected earlier
この問題に取り組むためのより良い方法はあるだろうか?
二変量+by+スタックデータテーブルを使う場合、すぐに良いアイデアが思い浮かびません。
分割(ワイド)形式のテーブルを使用するのが最善の選択肢です。グラフ作成にグラフビルダーを使用できる場合は、オーバーレイ/カラーを使用した数式と組み合わせて、以下のような処理を行うことができます(行は選択されません)。