データテーブル/行の状態とのポリセグ関連markerseg()のようにポリセグをデータテーブルに関連付けることができるので、セグメントを選択すると行もハイライトされます。
例えば
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt_sum = dt << Summary(
Group( :sex ),
Freq( "None" ),
Weight( "None" )
);
dt_sum:sex << Set Labelled;
gb = graphbox();
fb = gb[framebox(1)];
new window("Test",
gb
);
fps = polyseg([70, 90, 90, 70], [30, 30, 10, 10]);
fb << append seg(fps);
mps = polyseg([10, 30, 30, 10], [30, 30, 10, 10]);
fb << append seg(mps);
ms = markerseg([80, 20], [50, 50], row states(dt_sum));
fb << append seg(ms);
//can I assign fps to row 1 and mps to row 2 so that when I click them
// they select in both tables (since the tables are linked)再:データテーブル/行の状態とポリセグの関連付けかっこいい、イケてる!それらを使用しましたが、行状態が許可されていたことを忘れていました。 ありがとうございます。
再:データテーブル/行の状態とポリセグの関連付けshapeseg()を使用すると実際に行の状態にマッピングできることがわかりました。使用するには少し時間がかかりましたが、現在はかなりうまく機能しています。
再:データテーブル/行の状態とポリセグの関連付け多角形の中心を見つけるためのスクリプトを追加するのを忘れていました。 これはJMP 14の機能だと思います。 そのため、以前のバージョンを使用している場合は、ポリゴンの最初のポイントを使用してポイントをさらに小さくし、ポリゴンの線幅を2以上にすると、ポイントは「見えなく」なります。
注最初にポイントを作成して、それがバックグラウンドになるようにします。 JMPが完全に実装していることに気付いたように、1ポイントあたりのすべての行状態特性。そのため、選択されていないときにフェードインするような選択モードがポイントに表示されます。
この解決策は、色をテーブルと同期させることしかできないという点で部分的なものにすぎません。曲線やポリゴンにこの機能があるといいでしょう。また、各内蔵フレームボックスに関連付けられているマウスボックス/コールバックにアクセスしたり、フレームボスを参照してマウスボックスを追加したりすることができれば便利です。
再:データテーブル/行の状態とポリセグの関連付けビンス、
添付のスクリプトを試してください。それは完全な解決策ではありません。 このスクリプトは明らかにMarker Segsによって組み込まれた行状態ハンドラに依存しています。 マーカーセグメントがないと、このスクリプトはこの表示範囲の行状態ハンドラーを追加する必要があります。ハンドラ関数は、行の状態が変化したときにInvalをフレームボックスとUpdate Windowに送信する必要があります。
このスクリプトを拡張するには、多角形の中心を見つけてmarkersegを追加し、余分なスクリプトはすべて既存のJMP組み込みコードによって処理されるようにします。
お役に立てれば。
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt_sum = dt << Summary(
Group( :sex ),
Freq( "None" ),
Weight( "None" )
);
dt_sum:sex << Set Labelled;
gb = graphbox();
fb = gb[framebox(1)];
new window("Test",
gb
);
mpolyseg = Function({xmat, ymat, states=[]},{i,scrp=Expr(Glue()), c, rs=0},
show(states);
if(
IsMatrix(states) & nrow(states)==0
| //or
IsList(states) & nitems(states) ==0,
states=J(nrow(xmat),1,0),
Type(states) == "Table",
rs=1
);
For(i=1, i<=nrow(xmat), i++,
If(rs,
c = Parse(EvalInsert("Color Of(As Row State((^states^<<GET row="" states=""></GET>この関数は固定状態や色を指定することもできます。
もう1つの方法は、行状態ハンドラを作成し、すべてのウィンドウを検索し、(xpathを使用して)すべてのフレームボックスを検索し、それらすべてをinvalしてウィンドウを更新することです。