GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますか
JMP 14 および 15 の GraphBuilder BoxPlot セグメントには、ホバー ラベルが組み込まれているように見えます。
インタラクティブに、ホバー ラベルを固定できます。
以下に埋め込まれたのは、固定されたホバー ラベルと関連する保存済みスクリプトの画像です。
BoxPlotSeg フェンスへのアクセスに興味があります。 フェンス値にアクセスするための JSL 構文が見つかりません。 インタラクティブ セッションの保存されたスクリプトから、これらのフェンス値が GraphBuilder に固有のものであることは明らかです。 Outlier BoxPlot のフェンス値を検索/計算する方法を知っています。 ただし、JMP が GraphBuilder または別の方法で値を公開している場合、フェンス値にアクセスする方法を知りたいです。

Open( "$Sample_Data/Analgesics.jmp" ) <<
Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :drug ), Y( :pain ) ),
Elements( Points( X, Y, Legend( 5 ) ), Box Plot( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Add Pin Annotation(
Seg( Box Plot Seg( 2 ) ),
Index( {1, 1} ),
Index Row( {1, 1} ),
UniqueID( 568563361 ),
FoundPt( {321, 356} ),
Origin( {1.14256198347107, 3.97321428571429} )
)
)
)
);
ありがとうございました!
スクリプティングRe: GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますか@ian_jmp正解です。私の目標は、固定されたメッセージなしでフェンスにアクセスすることです。
はい、<< Get Quantiles は、フェンス値、q50 +/- 1.5*(q75-q25) の範囲内の最大および最小データ値を計算するのに役立ちます。 したがって、計算は難しくありません。 それらにアクセスする方法があるのだろうかと思いました。
@SDF1 、まだ 15.1 にアップグレードしていません。 それはスクリプトとして機能しますが、そうではありません。 新しいセッションを開くと、うまくいきます。同じ動作が続くかどうかを確認するには、15.1 にアップグレードする必要があります。 私の推測では、奇妙に見える ID 番号が問題です。
@nascif_jmp様、<
誰かがこの投稿をフォローしている場合に備えて、JSL で boxplot フェンスを取得するための 1 つのメソッド (変位値を取得するための複数のメソッドなど) を含むスクリプトを添付しました。
Names Default to Here(1);
dt = Open("$Sample_Data/Analgesics.jmp");
boxNodes = dt << Summary(
Group( :drug ),
Quantiles( 25, :pain ),
Median( :pain ),
Quantiles( 75, :pain ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "stat" )
);
bmin = boxNodes << New Column("Lower Fence", numeric, continuous);
bmax = boxNodes << New Column("Upper Fence", numeric, continuous);
bq25 = column(boxNodes, "Quantiles25");
bq75 = column(boxNodes, "Quantiles75");
bq50 = column(boxNodes, "Median");
bidx = Column(boxNodes, "drug");
For(i=1, i<=nrow(boxNodes), i++,
ll = bq50[i] - 1.5*(bq75[i] - bq25[i]);
ul = bq50[i] + 1.5*(bq75[i] - bq25[i]);
idx = dt << get rows where( :drug == bidx[i] & ll <= :pain <= ul );
bmin[i] = min(dt:pain[idx]);
bmax[i] = max(dt:pain[idx]);
);
以下に示す表が生成されます。 データ テーブルの鎮痛薬、列「痛み」の表示形式は小数点以下 2 桁です。フェンス値はテーブルに格納された値です。

Re: GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますか@gzmorgan0言った ' BoxPlotSeg フェンスにアクセスすることに興味があります。 「GetLocalContext」については知りませんでしたが、実際に存在するアノテーションに依存しているようです。 しかし、どちらも行列を返す 'GetMoments' と 'GetQuantiles' が役立つかもしれません。
Re: GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますかやあ@nascif_jmp 、
ええ、他の理由でも 15.1 にアップグレードする必要があります。現在のバージョンでは、共有ネットワーク ドライブのディレクトリ内のすべてのファイルが認識されません。 実際にそこにある何百ものファイルのうち、1 つ、2 つ、または 6 つのファイルが表示されることがあります。 どうやら、これは OneDrive の既知の問題でもあります。 15.1で修正されたと言われました。
IT 部門がロールアウトするまでしばらく待っていましたが、世界中の何百人ものユーザーが JMP を使用しているため、少し時間がかかるのではないかと思います。
ありがとう!、
DS
Re: GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますかやあ@SDF1 、
ローカル コンテキストを取得する15.1 で導入されました。 コピー動作し、完全なテキストを取得して解析できますが、理想的ではないことはわかっています(これが追加した理由です)ローカル コンテキストを取得する後で)。
注釈が表示されないという問題も見ました。 幸いなことに、15.1 では期待どおりに動作します。
JMP のインストールをアップグレードする理由を 2 つ挙げました。 
Re: GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますかやあ@nascif_jmp 、
(Win 10 Enterprise、64 ビット、JMP Pro 15.0.0)
これは本当に素晴らしい質問だと思い、他のことをやってみましたが、うまくいきませんでした。 スクリプトを実行し、[スクリプトをスクリプト ウィンドウに保存] を実行してから、[スクリプト ウィンドウ] ウィンドウ内で関連情報を検索してみました。 しかし、それはかなり難しいことがわかりました。
とにかく、お返事ありがとうございます。 あなたがくれたスクリプトを実行しようとしましたが、奇妙なことが 2 つあります。
- スクリプトをそのまま実行しようとすると、コードの「Send To Report(Dispatch(...))」セクションは実際にはピン注釈をグラフに追加しません。 私は手動で戻ってそれをしなければなりません。
- 上記を実行した後、行 hlec = gpin << Get Local Context(); を実行しようとするとJMP はログに次のエラーを記録します。オブジェクト 'gpin' はメッセージ 'Get Local Context' を認識しません。おそらく、次のいずれかを意味します: <<<テキストを追加... <<テキストの色 <<テキストを元に戻す <<タグライン <<グラフレットを起動 <<リンクを取得します。 hlec の場合は null を返します。
これらのいずれかが正しく機能しない理由はありますか?
また、私のバージョンの JMP は、スクリプト インデックスで Get Local Context コマンドを検索しても認識しません。これが原因で #2 が機能しないのでしょうか?
ありがとう!、
DS
Re: GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますかやあ、 @gzmorgan0 、
はい、可能です。 これらの注釈メッセージの一部は、テスト フレームワークを支援するためにごく最近追加されたものです。適切に文書化されていない場合は申し訳ありません。 私はそれを確認するようにします。
以下のスクリプトを参照してください。 注釈 (この場合はピン留めされたホバー ラベル) のコンテンツを単一のテキスト パラグラフとして取得する方法を示します (コピー) および連想配列の形式のデータとして (を使用してローカル コンテキストを取得します)。ご覧のとおり、ホバー ラベル コンテキスト データには、目に見えるホバー ラベル エントリだけではなく、グラフレット プリセットによって頻繁に使用されます。 パワー ユーザーはそれらを利用して、非常に興味深いインタラクティブな JMP アプリケーションを作成できると思います。 利用可能なデータの種類の詳細については、次を確認してください。
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/work-with-the-hover-label-execution-context.shtml
Names Default to Here(1);
dt = Open( "$Sample_Data/Analgesics.jmp" );
gb = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :drug ), Y( :pain ) ),
Elements( Points( X, Y, Legend( 5 ) ), Box Plot( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Add Pin Annotation(
Seg( Box Plot Seg( 2 ) ),
Index( {1, 1} ),
Index Row( {1, 1} ),
UniqueID( 568563361 ),
FoundPt( {321, 356} ),
Origin( {1.14256198347107, 3.97321428571429} )
)
)
)
);
frame = (gb << Report)[FrameBox(1)];
gpin = frame << Get Annotation();
pinText = gpin << Copy();
Show(pinText);
hlec = gpin << Get Local Context();
Show(hlec);
ログ結果:
pinText = "
Maximum, excluding outliers: 16.636
75%: 12.93
50%: 9.418
25%: 7.84
Minimum, excluding outliers: 3.838
drug: B
N: 7";
hlec = ["_25%" => 7.84, <BR />"_50%" => 9.418, <BR />"_75%" => 12.93, <BR />"_dataTable" => Data Table( "Analgesics" ), <BR />"_displaySegName" => "BoxPlotSeg", <BR />"_drillDepth" => 1, <BR />"_drug" => "B", <BR />"_filters" => {:pain, :drug}, <BR />"_firstRow" => -1, <BR />"_groupings" => {:pain, :drug}, <BR />"_Maximum, excluding outliers" => 16.636, <BR />"_measurements" => {}, <BR />"_Minimum, excluding outliers" => 3.838, <BR />"_mode" => "Test", <BR />"_N" => 7, <BR />"_pain" => {7.84, 12.93}, <BR />"_summaryStatistic" => "", <BR />"_underlyingRows" => 7, <BR />"_where" => ":pain >= 7.84 & :pain < 12.93 & :drug == \!"B\!"", <BR />"_whereExpr" => Expr(
:pain >= 7.84 & :pain < 12.93 & :drug == "B"
)];