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로 상자 그림 울타리를 얻는 한 가지 방법(분위수를 얻는 여러 가지 방법 등)이 포함된 스크립트를 첨부했습니다.
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 설치를 업그레이드해야 하는 두 가지 이유를 방금 말씀드렸습니다! 
Re: GraphBuilder BoxPlotSeg 레이블에 액세스하기 위한 JSL 메시지가 있습니까?안녕 @nascif_jmp ,
(Win 10 Enterprise, 64비트, JMP Pro 15.0.0)
정말 좋은 질문이라고 생각해서 다른 일도 해봤지만 잘 안 됐어요. 스크립트를 실행하고, 스크립팅 창에 스크립트 저장을 수행한 다음 스크립팅 창 내에서 관련 정보를 검색해 보았습니다. 하지만 그것은 꽤 어려운 일이었습니다.
어쨌든, 답장을 보내주셔서 감사합니다. 귀하가 제공한 스크립트를 실행하려고 시도했는데 두 가지 이상한 일이 발생했습니다.
- 스크립트를 있는 그대로 실행하려고 하면 코드의 "Send To Report(Dispatch(...))" 섹션이 실제로 그래프에 핀 주석을 추가하지 않습니다. 수동으로 다시 들어가서 수행해야 합니다.
- 위의 작업을 수행한 후 hlec = gpin << Get Local Context(); 줄을 실행하려고 하면 JMP는 로그에 다음 오류를 표시합니다. 'gpin' 개체가 '로컬 컨텍스트 가져오기' 메시지를 인식하지 못합니다. 아마도 다음 중 하나를 의미할 것입니다: <<텍스트 바꾸기... <<텍스트 추가... <<텍스트 색상 <<텍스트 되돌리기 <<태그 라인 <<그래프렛 실행 <<링크 가져오기. 그리고 hlec에 대해서는 null을 반환합니다.
그 중 하나가 올바르게 작동하지 않는 이유에 대한 아이디어가 있습니까?
내 JMP 버전은 스크립팅 색인에서 검색할 때 로컬 컨텍스트 가져오기 명령을 인식하지 못합니다. 아마도 이것이 #2가 작동하지 않는 이유일까요?
감사해요!,
DS
Re: GraphBuilder BoxPlotSeg 레이블에 액세스하기 위한 JSL 메시지가 있습니까?안녕하세요, @gzmorgan0 ,
예, 가능합니다. 이러한 주석 메시지 중 일부는 테스트 프레임워크를 돕기 위해 최근에 추가되었습니다. 제대로 문서화되지 않은 경우 사과드립니다. 그 점은 꼭 확인해 보겠습니다.
아래 스크립트를 참조하세요. 주석(이 경우 고정된 호버 레이블) 콘텐츠를 단일 텍스트 단락으로 가져오는 방법을 보여줍니다(사용). 복사 ) 및 연관 배열 형태의 데이터로 (사용 로컬 컨텍스트 가져오기).보시다시피 호버 레이블 컨텍스트 데이터에는 눈에 보이는 호버 레이블 항목 이상의 내용이 포함되어 있으며 Graphlet 사전 설정에서 많이 사용됩니다. 저는 고급 사용자가 이 기능을 활용하여 정말 흥미롭고 대화형인 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"
)];