수직선 및 주석방송 영상을 보고 수직선과 댓글(주석)이 포함된 컨트롤 차트를 만들어 보았습니다. 줄은 잡았는데 댓글이 다 엉망이네요. 여러 가지를 시도했지만 성공하지 못했습니다. 첨부파일과 코드를 보시고 뭐가 문제인지 알려주실 수 있나요?
스크립팅Re: 수직선과 주석@gzmorgan0
이것은 챔피언처럼 작동합니다!
감사합니다!
Re: 수직선과 주석@세브넴 ,
행과 열에 대한 참조가 아닌 수직선과 텍스트에 대한 값을 포함하는 스크립트(표현식)를 만드는 방법은 여러 가지가 있습니다.
표현식에 대한 JSL 함수[Substitute(), NameExpr(), EvalExpr(), Expr() ] 및 텍스트를 JSL 표현식으로 변환하는 JSL 문자 함수[ Concat(), ConcatTo(), Eval Insert() 및 Parse]는 다음에 유용합니다. 배우다.
cc= Control Chart(
Sample Label( :TestDate ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Avg, Individual Measurement )
);
rcc = report(cc);
scrp = Expr(Add Graphics Script(3,
Description( "PM Labels" )));
//get y placement = axis max - 0.5* axis inc
ypos = (rcc[AxisBox(1)]<< Get Max) - 0.5* (rcc[AxisBox(1)] << Get Inc);
txtcmd = "";
For Each Row(
If( Is Missing( :comment ) == 0,
txtcmd ||= EvalInsert("\[
V Line( ^Row() -1^ );
Text(
//Right Justified,
{ ^Row() - .75^, ^ypos^},
"^:comment(Row())^");]\")
)//end if
); //end for each row
show (txtcmd ); //see log
InsertInto(scrp, Parse(txtcmd));
show (scrp ); //see log
txtxp = Substitute(Expr(rcc[FrameBox(1)] << cmd), Expr(cmd), NameExpr(scrp));
Show(NameExpr(txtxp));
Eval(txtxp);
For Each Row() 를 사용하는 대신 idx= dt << get rows where ( !Is Missing( :comment ) )를 사용하여 주석이 있는 더 작은 행 목록을 찾을 수 있습니다.

Re: 수직선과 주석@세브넴 ,
나는 당신의 스크립트를 사용했습니다. 2가지 주요 문제가 있습니다.JMP 컨트롤 차트는 X축에 시퀀스를 사용하고 TestDate는 레이블을 정의하는 데 사용됩니다.따라서 라벨의 x 위치는 수직선과 마찬가지로 Row() - 1이어야 합니다. Right Justified를 주석 처리하고 라벨이 수직선 바로 오른쪽에 있도록 마이너스 0.75를 사용했습니다.Right Justified에서 주석을 제거하고 레이블이 수직선의 왼쪽에 표시되도록 Row() - 1로 만듭니다.
두 번째 오류는 y 위치입니다. 1.2*Col Maximum(:Avg)의 곱셈 계수는 > 1500입니다.더미 값을 추가했습니다. Col Max(:Avg) +0.10 * Col Std Dev(:Avg)를 고려할 수 있습니다.
그래서 당신의 문제는 x와 y pos였습니다. 열 정보를 사용하여 주석을 추가하는 쉬운 방법입니다. 그러나 이는 테이블이 열려 있는 만큼의 로그일 뿐입니다.
결과 그래프를 저널링하고 데이터 테이블과 컨트롤 차트 보고서를 닫고 컨트롤 한계의 선 너비 변경과 같은 업데이트를 수행한다고 가정합니다. 줄과 주석이 모두 사라집니다.또는 일기를 저장하고 다른 사람에게 보내거나 새 세션에서 열면 다시 레이블과 줄이 사라집니다.
이러한 줄과 텍스트를 유지하려면 데이터 테이블에 대한 참조가 아닌 값을 사용해야 합니다.값과 참조를 사용하는 두 번째 스크립트를 추가하겠습니다.그러나 이것은 스크립트에 무엇이 잘못되었는지 보여줍니다.
Control Chart(
Sample Label( :TestDate ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Avg, Individual Measurement ),
SendToReport(
Dispatch(
{"Individual Measurement of Avg"},
"IR Chart of IM",
FrameBox,
{Add Graphics Script( 2, Description( "Script" ), Empty() ),
Add Graphics Script(
3,
Description( "Script" ),
For Each Row(
If( Is Missing( :comment ) == 0,
V Line( Row() - 1 )
)
);
For Each Row(
If( Is Missing( :comment ) == 0,
Text(
//Right Justified,
{Row()-0.75, Col Maximum( :Avg )+ 1.005},
:Comment
)
)
);
), Grid Line Order( 5 ), Reference Line Order( 6 )}
)
)
);