JMP グラフィックにはこのような効果がありますか?これは HTML 効果です。
JMP グラフレットはこの効果を実現できますか?
ありがとう!

自動化とスクリプトウィンドウズRe: JMP グラフィックにこの効果はありますか?
@ホギ wrote:
この名前空間にアクセスするにはどうすればいいですか?
両方:
Report(gb)[FrameBox(1)] << get namespace() ;
(Report(gb)[FrameBox(1)] << find seg(TopSeg (1))) << get namespace();
新しい名前空間を生成します。
... JMPサポートに問い合わせました: TS- 00173810
残念ながら:
あなたできない アクセス の グラフィック スクリプト 名前空間 外部的に.
Re: JMP グラフィックにこの効果はありますか?痛いですね。 円はどうやって描くんですか?
Re: JMP グラフィックにこの効果はありますか?ハンドルはそうです。円はそうではありません。正方形でないグリッド上の完全に丸い円の半径は、Y 軸座標で定義されていると思います。
Re: JMP グラフィックにこの効果はありますか?興味深いですね。ハンドルが x/y 座標系に関連付けられていないのはなぜでしょうか?
プロットのサイズを変更した後も動作しますが、大きなオフセットがあります。
Re: JMP グラフィックにこの効果はありますか?-
Re: JMP グラフィックにこの効果はありますか?x,yの代わりに関数の引数を使うことができます
Names Default To Here( 1 );
New Window( "Example",
trapx = 20;
trapy = 50;
handx = 70;
handy = 80;
trapcolor="blue";
handcolor="blue";
Graph Box(
Frame Size( 200, 200 ),
handle( handx, handy, // any handle(s) must come before Mousetrap
Function( {a, b}, handx=a; handy=b;
Write( Eval Insert( "\!nhand drag ^a^ ^b^" ) );
handcolor="magenta"; )
, // the mouse-up handler
Function( {a, b}, handx=a; handy=b;
Write( Eval Insert( "\!nhand release ^a^ ^b^" ) );
handcolor="cyan"; )
);
Mousetrap( // should not be more than one Mousetrap, the first one captures all clicks
Function( {a, b}, trapx=a; trapy=b;
Write( Eval Insert( "\!ntrap drag ^a^ ^b^" ) );
trapcolor="red"; )
, // the mouse-up handler
Function( {a, b}, trapx=a; trapy=b;
Write( Eval Insert( "\!ntrap release ^a^ ^b^" ) );
trapcolor="green"; )
);
// the drawing occurs outside of the mousetrap or handle
pencolor(trapcolor);
pensize(3);
Circle( {0, 0}, Sqrt( trapx * trapx + trapy * trapy ) );
pencolor(handcolor);
pensize(3);
Circle( {0, 0}, Sqrt( handx * handx + handy * handy ) );
)
);
1 つ以上のハンドルが必要な場合は、マウストラップの前に表示する必要があります。これは、以前のハンドルがクリックを取得しなかった場合、マウストラップによってクリックが消費されるためです。
Re: JMP グラフィックにこの効果はありますか?
フレームボックスごとに1つの共有名前空間-グローバル名前空間とは別
- 他のフレームボックスの名前空間とは分離されています。
編集: うわー、発見の解釈がかなり間違っています。
::x= 5;
(Report( gb )<< xpath("//FrameBox")) << add graphics script(//
If(Not( Is Empty( x ) ), // if the mouse did not yet enter the graph -> do nothing.
Caption("global x is "|| Char(::X));
V Line(x+3);
)
//
);
もう一つの発見は、ビデオの最後にあります。
ウィンドウのスケールを変更すると、 ここ名前空間の元の値でプロットがリセットされます。
この名前空間にアクセスするにはどうすればいいでしょうか?
両方:
Report(gb)[FrameBox(1)] << get namespace() ;
(Report(gb)[FrameBox(1)] << find seg(TopSeg (1))) << get namespace();
新しい名前空間を生成します。
Re: JMP グラフィックにこの効果はありますか?スクリプト インデックスで次の情報を見つけました:

座標 x と y は、スクリプトの実行のためのグローバル変数として保存されます。
また、スクリプトの実行後、既存のグローバル変数 x と y が復元されます。
ここで物語は終わるかもしれません。
コメントを外すと
// x=y=60;
グラフを x = 60 の線で開始します。 -> スクリプトはHere名前空間のローカル変数を使用します。
驚いたこと:
線を別の場所にドラッグしてみると、うまくいきます!
なぜこれが驚くべきことなのか:
Here名前空間内の x は 60 のままです。また、スクリプトは、グローバル名前空間の変数よりもHere名前空間の変数を優先します。[編集: グローバル変数については、この時点で元の値が「復元」される必要があります: MouseTrap を実行した後]。では、なぜスクリプトが機能するのでしょうか?!
スクリプト内には、 Here名前空間の変数の代わりに優先的に使用されるローカル変数 x と y があるようです。この解釈は正しいですか?
そして、行の下には、JMPがグローバル変数に対して余分な努力をするのはとても親切です。これにより、グラフィックススクリプトのコンテキスト外にある関数(myfunctions:xy)でも変数にアクセスできます。:)
確認してみると面白いかもしれません:
1 つの FrameBox のグラフィック スクリプト - 共通の名前空間を共有しますか、それとも各グラフィック スクリプトが独自の名前空間を使用しますか...
Re: JMP グラフィックにこの効果はありますか?なるほど
ありがとうクレイグ!
Re: JMP グラフィックにこの効果はありますか?@hogi MouseTrap は JSL では奇妙なものです。これは実行時に何も行わない関数であり、実行されるかどうかや (ほとんどの場合) スクリプト内のどこに配置されているかは関係ありません。グラフ上でマウスが移動すると、座標が x、y でスクリプトに送信され、次のようにグローバルにコピーする必要があります。
ハンドルとさまざまなドラッグ バリアントには位置が関連付けられており、十分に近い場合にのみアクティブになります。順序は少し重要です。スクリプト内で最初に遭遇した十分に近い (数ピクセル) ものが更新されるからです。
なぜそれがあなたの変更で機能するのか、完全には説明できません。X は実際には存在するべきではありません... ネズミ捕りから逃れたようです!
最初の投稿のスクリプトを修正しました。
Re: JMP グラフィックにこの効果はありますか?ホバードリルスクリプトを追加するようです。
For(iFrame=1,iFrame<=N Items(framelist),iFrame+=1,frame=framelist[iFrame]; Eval(Eval Expr(frame<<ADDGRAPHICSSCRIPT></ADDGRAPHICSSCRIPT>
Thanks Experts!
Re: JMP グラフィックにこの効果はありますか?@Craige_Hales 、素敵です、とてもスムーズです! 
ほとんどスムーズすぎる: この例が、開発者が JSL 以外のアプローチを実装することを妨げないことを願っています。
グラフ ビルダーによるネイティブ サポートに関するいくつかの議論:
- ネイティブグラフビルダーをより強力にする
- 日本語を話さない人にも喜んでもらえる
- マウスクリックなしでも自動的に派手な注釈を表示します
-> ユーザーが通常通りマウスを使ってデータポイントを選択できるようにする
(現在の「JSL」アプローチでは、 ベン図に実装されているように、正しいモードを選択するためのトグル ボタンをいくつか追加する可能性があります)
エラーメッセージを理解するのに少し時間がかかりました。
Names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
// x=y=60;
fb = Report( gb )[FrameBox( 1 )];
fb << addgraphicsscript(//
If(Not( Is Empty( x ) ), // if the mouse did not yet enter the graph -> do nothing.
Mousetrap("nothing to do");
V Line(x);
// at this point you can highlight all the values near xx
For( irow = 1, irow <= N Rows( dt ), irow += 1,
If( Abs( dt:height[irow] - x ) < 0.5, // big class height step is 1, <.5 selects a single column of weights
Marker( Marker State( 4 ), {dt:height[irow], dt:weight[irow]} )
)
);
xwidth = X Range();
xmidpoint = X Origin() + xwidth / 2;
If( x < xmidpoint,
Text( {x + xwidth / 100, y}, "height " || Char( Round( x ) ) || "\!nmore" )//
,
Text(
right justified,
{x - xwidth / 100, y},
"height " || Char( Round( x ) ) || "\!nmore"
)
);
)
//
);
Re: JMP グラフィックにこの効果はありますか?
Re: JMP グラフィックにこの効果はありますか?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
fb = Report( gb )[FrameBox( 1 )];
xx = yy = 0;
fb << addgraphicsscript(//
Mousetrap(
xx = x;
yy = y;
);
V Line( xx );
// at this point you can highlight all the values near xx
For( irow = 1, irow <= N Rows( dt ), irow += 1,
If( Abs( dt:height[irow] - xx ) < 0.5, // big class height step is 1, <.5 selects a single column of weights
Marker( Marker State( 4 ), {dt:height[irow], dt:weight[irow]} )
)
);
xwidth = X Range();
xmidpoint = X Origin() + xwidth / 2;
If( xx < xmidpoint,
Text( {xx + xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nmore" )//
,
Text( right justified, {xx - xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nmore" )
);
//
);
編集: 18 行目が x ではなく xx になりました。名前空間に何か残っていたに違いありません。 @lala @hogiありがとう
Re: JMP グラフィックにこの効果はありますか?( JSL フリー) グラフ ビルダー経由: まだです。将来のリリースで可能になるかもしれません。
競合プログラムでもこのタイプの注釈を提供するものが増えているので、JMP でも実装されるようになると思います。
線とより滑らかなタイプのチャート用の新しいタイプの十字線に進み、 @shampton82の願いをサポートできます。
Re: JMP グラフィックにこの効果はありますか?はい、JSL 経由で。
Re: JMP グラフィックにこの効果はありますか?スクリプトを少し変更して、重量値を表示するようにしました。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
fb = Report( gb )[FrameBox( 1 )];
xx = yy = 0;
valuesMatrix = :height << Get Values; //***new*** Get column values for height
fb << addgraphicsscript(//
Mousetrap(
xx = x;
yy = y;
);
V Line( xx );
// at this point you can highlight all the values near xx
For( irow = 1, irow <= N Rows( dt ), irow += 1,
If( Abs( dt:height[irow] - xx ) < 0.5, // big class height step is 1, <.5 selects a single column of weights
Marker( Marker State( 4 ), {dt:height[irow], dt:weight[irow]} )
)
);
valuesRows = char(:weight[loc(valuesMatrix,round(xx))]); //***new*** write to char weight values for all rows of height at position round(xx)
xwidth = X Range();
xmidpoint = X Origin() + xwidth / 2;
If( xx < xmidpoint,
Text( {xx + xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nweight " || valuesRows )////***new*** exchanged "more" with weigth and list of weight values for that location of height
,
Text( right justified, {xx - xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nweight " || valuesRows )
);
//
);
値を昇順/降順で並べ替える機能も追加できます。
Re: JMP グラフィックにこの効果はありますか?うーん、私の結論の多くは間違っていたと思います。
もう一度試してください:

- たぶん
「[ドラッグ] スクリプトを実行した後」ではなく、「mouseUp とともに」という意味です。
- そして非常に重要です。フレームボックスを更新する必要がない場合は、更新されません。
それで、
- マウスを動かすと、新しい座標がxとyに保存されます。
(
? いいえ - Here名前空間では、 Names default to HERE (1 ) を使用しているため
- ...そして、その値はHere名前空間内、つまりマウストラップ()の外でも使用できます。これは@Craige_Halesを困惑させ、私もこの罠に陥ってしまいました。 ドラッグ&ドロップスクリプトの作成です。
- 変数が更新されると、JMP はトリガーを取得し、グラフィックス スクリプトと現在の x 値および y 値を使用してフレームボックスを再描画します。
- その他のフレームボックスは更新されません:
マウスを左のフレーム ボックス内で移動しても、中央のフレーム ボックスは更新されません。逆の場合も同様です。
これにより、2つの別々の名前空間があるような錯覚が生じます。そのため、ユーザーがフレームボックスの名前空間にアクセスできないのも不思議ではありません。名前空間は存在しません。共有されているここ名前空間と、ローカルのFrameboxの更新が組み合わさっているだけです。
- マウスボタンを離した後、xとy
。
ただし、フレームボックスの更新はトリガーされません。そのため、ユーザーは「ここ」名前空間内の変数のリセットに気付きません。
- グラフが次に更新されるとき (サイズが変更されたり、一部のデータ ポイントが選択されたりしたときなど)、グラフィック スクリプトが再度実行され、値が (しばらく前に) リセットされたことがわかります。
Re: JMPのグラフィックにこのような効果はありますか?gpt-5.6-luna。
この投稿を思い出させる

悪くない!
Re: JMPのグラフィックにこのような効果はありますか?これは本当に素晴らしいですね、 @Craige_Hales 、 @martindemel 、 @hogi 。
これは非常に便利な機能で、グラフビルダーにこのような機能が標準搭載されることを強く支持します。グラフをクリックした場所の近くのデータポイントをハイライト表示してくれる点が気に入っています。
グラフを「オフ」にする方法はありますか?グラフをクリックすると、縦線がそのまま表示されてしまいます。グラフの表示が終わったら、何らかの方法でグラフをリセットできると良いのですが。この機能は、JSLを使うよりもプラットフォームにネイティブに実装する方が簡単かもしれません。
ありがとう!、
DS
Re: JMPのグラフィックにこのような効果はありますか?@SDF1 さん、ありがとうございます!mousetrap に 2 番目のスクリプト引数を指定することで、ボタンの離しを検出し、グラフィック スクリプトを削除できます。最初のスクリプトは、マウスが押されたときと、その後のマウスの移動のたびに呼び出されます。2 番目のスクリプトが指定されている場合は、同じパラメータで呼び出され、マウスが離されたことを示します。
Re: JMPのグラフィックにこのような効果はありますか?Gemini 3.1 Proがこの傑作を完成させるとは、全く予想していませんでした。 
Re: JMPのグラフィックにこのような効果はありますか?クロード・フェイブル5 