JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?以下のスクリプトに従ってください。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
);
JSL の書き方 グラフ内の特定の年齢バーをクリックして、この年齢の値を取得し、この値を使用して以降の操作を実行する方法を示します。
ありがとう!

基本的なデータ分析とモデリング結果の共有と伝達回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?この矢印で示されたスペースをクリックすると、年齢の値 = 14 が取得できますか?
ラベルをホバーするのではなく、マウスの左クリックです。
回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか???
frame = (p1 << report)[FrameBox( 1 )];
frame << Set Graphlet(
Picture(
dataage = Parse( age:_where );//??
d2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
d2 << Select Where( age == dataage );
d3 = d2 << Subset( Output Table( "test" ), Selected Rows( 1 ), selected columns( 0 ) );
Try( d3 << Delete Table Property( "Source" ) );
),
Reapply( 1 )
);
返信: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?
回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?ホバー ラベルでトリガーされる場合、なぜ Big Class Families.jmp を開くことが年齢 ==12 の場合にのみトリガーされるのでしょうか?
ありがとう!
txt = "a";
Set Clipboard( txt );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
,
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Set Textlet(
Setup(
expr = Parse( local:_where );
a = local:_dataTable << Get Rows Where( expr );
Set Clipboard( a[1] );
local:r = local:_dataTable << Get Rows Where( expr );
),
Markup( "{local:r}rows" )
)
)
)
);
txt = Get Clipboard();
frame = (p1 << report)[FrameBox( 1 )];
frame << Set Graphlet(
Picture(
dataage = txt; //Parse( age:_where );//??
d2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
d2 << Select Where( age == dataage );
d3 = d2 << Subset( Output Table( "test" ), Selected Rows( 1 ), selected columns( 0 ) );
Try( d3 << Delete Table Property( "Source" ) );
),
Reapply( 1 )
);
回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?dt = Open( "$SAMPLE_DATA/Big Class.jmp", invisible );
p1 = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
);
// this graphbuilder chart has multiple FrameBoxes. Get a list of them.
framelist = Report( p1 ) << XPath( "(//OutlineBox[text()='Graph Builder']//FrameBox)" );
// each framebox needs a graphis script with a Mousetrap to detect clicks.
For( iFrame = 1, iFrame <= N Items( framelist ), iFrame += 1,
frame = framelist[iFrame];
// the mousetrap needs to capture the iFrame value when it is
// built so it can report it later; use eval(evalexpr(...expr()...))
Eval(
Eval Expr(
frame << Addgraphicsscript(
Mousetrap(
{/*nothing on mouse drag, it happens a lot*/}//
, // but on mouse up, do something. MouseUp only happens once per click.
xx = x;
yy = y;
Show( xx, yy, Expr( iFrame ) );
// run your script here
)
)
)
);
);回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?専門家に感謝します!
非常に驚くべきことに、xx、yy、Expr(iFrame) の変更を確認しました。

回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?しかし、なぜこのスクリプトは JMP Pro 17.0 の中国語版では機能しないのでしょうか?
win10
ありがとう!

回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?JMP のバージョン 17 を英語に設定します。
動作しますが、ログには中国語が含まれますか?
ありがとう!

回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?わかりました
クレイジさん、ありがとう!
コードをコピーするだけではなく、問題を解決する方法を教えていただきました。
専門家に感謝します!

回复: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?これをつかみました
"(//OutlineBox[text()='Graph Builder']//FrameBox)"
ここから
right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.アウトラインの三角形を右クリックし、「プロパティの表示」を選択します。いずれかのグラフをクリックします。
それを単純化するとよいでしょう
framelist = Report( p1 ) << XPath( "(//FrameBox)" );
返信: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?ホバーラベルではなくグラフィックをクリックしてスクリプトをトリガーしたい
しかし、このグラフィックは形が変わるので、JSL で記述するにはどのように変更すればよいかわかりません。
私は専門家のところに戻らなければなりませんでした。
ありがとう!

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Size( 632, 1152 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements(
Bar( X, Y, Legend( 5 ), Bar Style( "Stacked" ), Response Axis( "X" ), Summary Statistic( "Sum" ) )
)
);
gp = Report(p1)["Graph Builder",FrameBox(1)]
Eval(
Eval Expr(
gp << Addgraphicsscript(
Mousetrap(
{},
a0 = Expr( iFrame );
dt << Select Where( :height == a0 );
dt << Select Columns( "height" );
d3 = dt << Subset( Output Table( "test" ), Selected Rows( 1 ), columns( height ) );
)
)
)
);返信: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?バーに行くのが面倒なら、
- ヒートマッププロットを追加する
- xとyの変数が無効になっている
- 透明度を 0 に設定した場合:
返信: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?クリックするのが面倒な人や、式の処理を使用するのが面倒な人は、ホバー ラベルの画像部分を使用してください。
反応は即時です(ホバー ラベルが表示されるまでの時間よりもはるかに高速です)。
dt = Open( "$SAMPLE_DATA/Big Class.jmp", invisible );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
);
fbs = Report( gb ) << XPath( "//FrameBox" );
For Each( {fb}, fbs,
fb << Set Graphlet( Picture( Caption( Char( myAge = :age[local:_firstRow] ) ) ) )
);回答: JSL はこのようなグラフでクリックして変数値を取得する方法をどのように実装するのでしょうか?