GraphBuilder BoxPlotSeg ラベルにアクセスするための JSL メッセージはありますか
JMP 14 および 15 の GraphBuilder BoxPlot セグメントには、ホバー ラベルが組み込まれているように見えます。
インタラクティブにホバーラベルを固定できます。
以下に、固定されたホバー ラベルと、関連する保存されたスクリプトの画像が埋め込まれています。
BoxPlotSeg フェンスにアクセスすることに興味があります。 フェンス値にアクセスするための JSL 構文が見つかりません。 インタラクティブ セッションの保存されたスクリプトから、これらのフェンス値が GraphBuilder に固有のものであることが明らかです。 外れ値ボックスプロットのフェンス値を検索/計算する方法を知っています。 ただし、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 <
somone がこの投稿をフォローしている場合に備えて、JSL で箱ひげ図フェンスを取得する 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 は、Scripting Index で検索したときに 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"
)];