관리도에 하한/상한 및 평균 플로팅안녕 얘들아
Show Limit Summaries 테이블 대신 컨트롤 차트(컨트롤 차트 빌더에서 생성)에 하한, 상한 및 평균 값을 직접 플로팅할 수 있는지 알고 싶습니다.
감사.
Re: 관리도에 하한/상한 및 평균 플로팅고마워요, 짐. 이제 작동합니다!Re: 관리도에 하한/상한 및 평균 플로팅최신 JMP 버전에서는 "Summarize()" 함수의 구문이 변경되었습니다. 그게 문제일 수도 있을 것 같습니다. 진술 변경
요약( dt, byPhase = by( :MyPhase ) );
에게
요약( byPhase = by( :MyPhase ) );
Re: 관리도에 하한/상한 및 평균 플로팅고맙습니다. 영어 피클 샘플 데이터를 확인했지만 여전히 성공하지 못했습니다. Summarize( dt/*###*/, byPhase = by( :MyPhase ) )를 실행한 후 스크립을 실행하고 다음 보고서를 얻는 단계를 밟습니다. 나는 당신을 위해 로그를 영어로 번역합니다. 거기에 문제가 있다고 생각하십니까?
必须是赋值运算符 正在访问或计算“dt”, dt/*###*/
"dt"를 방문할 때 할당 연산자를 사용해야 합니다.
在以下脚本中,使用 /*###*/ 标记错误
다음 스크립트에서 /*###*/를 사용하여 오류를 표시합니다.
Re: 관리도에 하한/상한 및 평균 플로팅스크립트는 제목이 영어로 "Individual Measurement of Acid"인 특정 개요 상자를 찾고 있습니다.귀하의 출력은 분명히 영어가 아닙니다.아래 스크립트는 개요 상자(2)에 대한 참조를 변경합니다.이것은 개요 상자에 대한 절대 참조이며 "산의 개별 측정"은 상대 참조입니다."개별 산도 측정"을 다음으로 바꿀 수도 있습니다.

Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
addTxt = Expr(
framebox << Add Graphics Script(
Description( scriptNameTBD ),
Text Color( "Black" );
Text( Center Justified, {xTBD - 2, yTBD + .1}, txtTBD );
);
);
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )[Outline Box(2)][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )[Outline Box(2)][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )[Outline Box(2)][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
// Use a separate graphics script for each annotation so that they are more easily moved 'by hand'
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "LCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), LCL, Expr(txtTBD), LCLtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "Avg Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), Avg, Expr(txtTBD), Avgtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "UCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), UCL, Expr(txtTBD), UCLtxt));
);Re: 관리도에 하한/상한 및 평균 플로팅JSL은 이전에 게시한 것과 동일합니다. 여기에서 테이블 이미지를 찾을 수 있습니다. 보시다시피 LCL, UCL 및 평균에 대한 텍스트가 추가되지 않았습니다.
감사.
Re: 관리도에 하한/상한 및 평균 플로팅저는 JMP 11이나 Mac에 대한 액세스 권한이 없으므로 귀하의 도움이 필요합니다. 메시지는 표시된 출력 테이블에서 LCL을 읽으려고 시도하는 코드 조각을 가리키고 있습니다. 제한이 있는 컨트롤 차트에서 생성된 테이블의 이미지를 제공할 수 있습니까?
Re: 관리도에 하한/상한 및 평균 플로팅Mac JMP 11에서 JSL을 사용해 보았습니다. 그러나 여전히 텍스트가 차트에 성공적으로 추가된 것 같습니다. 로그창에 아래와 같은 에러 정보가 뜨고 첨자를 계산할 수 없다고 합니다. 나에게 외식을 줄 수 있습니까?
For( i = 1, i <= N 항목( byPhase ), i++,
LCL = (보고서( ct )[/*###*/"산의 개별 측정"][숫자 열 상자( i )
] << get)[1];
Re: 관리도에 하한/상한 및 평균 플로팅@ian_jmp
아주 좋은 추가!
Re: 관리도에 하한/상한 및 평균 플로팅아주 좋은 짐!
각 주석에 대해 별도의 그래픽 스크립트가 있도록 코드에 자유롭게 추가했습니다.

이렇게 하면 충돌을 피하기 위해 '손으로' 주석을 이동할 수 있습니다(그래픽 상자를 마우스 오른쪽 버튼으로 클릭하고 '사용자 지정'을 선택한 다음 스크립트의 x 및 y 값을 취향에 맞게 편집).
Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
addTxt = Expr(
framebox << Add Graphics Script(
Description( scriptNameTBD ),
Text Color( "Black" );
Text( Center Justified, {xTBD - 2, yTBD + .1}, txtTBD );
);
);
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
// Use a separate graphics script for each annotation so that they are more easily moved 'by hand'
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "LCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), LCL, Expr(txtTBD), LCLtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "Avg Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), Avg, Expr(txtTBD), Avgtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "UCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), UCL, Expr(txtTBD), UCLtxt));
);
Re: 관리도에 하한/상한 및 평균 플로팅다음은 제한 테이블에서 값을 가져와 차트에 배치하는 매우 거친 스크립트입니다. 시간을 내어 아래 코드를 사용하여 스크립팅 가이드를 읽고 코드가 수행하는 작업을 정확하게 알아보시기 바랍니다.
도움말==>도서==>스크립팅 가이드

Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
framebox << Add Graphics Script(
Text Color( "Black" );
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
Text( Center Justified, {PhaseMaxRowList[i] - 2, LCL + .1}, LCLtxt );
Text( Center Justified, {PhaseMaxRowList[i] - 2, Avg + .1}, Avgtxt );
Text( Center Justified, {PhaseMaxRowList[i] - 2, UCL + .1}, UCLtxt );
);
);Re: 관리도에 하한/상한 및 평균 플로팅안녕하세요.
그래서 예전에 쓰던 예전 소프트웨어가 미니탭입니다.
귀하의 질문에 답하면 값이 소프트웨어에서 자동으로 그리고 단계별로 표시됩니다(아래 그림 참조).
이전에 공유한 예에는 단계가 없습니다.
내가 너무 많은 것을 요구했다는 것을 알고 있지만 스크립트를 사용하여 이러한 작업(차트에서 테이블 및 플롯 값 제거)을 포함하는 방법에 대한 지침을 제공할 수 있습니까?
다시 한번 감사드립니다.

Re: 관리도에 하한/상한 및 평균 플로팅차트에 값을 추가할 수 있습니다. 단계가 없으면 값이 차트의 일부로 표시됩니다.

그러나 데이터에 단계가 있는 경우 지적한 대로 값이 차트 옆의 테이블에 있고 차트에서 원하는 값입니다. 이전 소프트웨어에서 값을 수동으로 추가할 수 있는 경우 JMP 내에서 차트에 주석을 추가하여 동일한 작업을 수행할 수 있습니다.

이 작업을 프로그래밍 방식으로 수행해야 하는 경우 스크립트를 사용하여 단순히 표시된 테이블에서 값을 읽고 IR 차트에 배치할 수 있습니다.
이전 소프트웨어의 예에서 다른 단계가 있는 것처럼 보였지만 한 세트의 제한만 표시되었음을 알았습니다. 한도가 모든 단계에서 동일했기 때문입니까?
Re: 관리도에 하한/상한 및 평균 플로팅제가 잘못 이해한 사람입니다. 이 주제가 나왔습니다 ~ 전에 .
Re: 관리도에 하한/상한 및 평균 플로팅
안녕하세요, 빠른 답변 감사합니다.
나는 내 설명이 그렇게 명확하지 않다고 생각합니다. 하한선, 상한선 및 평균선의 값을 플롯해야 합니다.
내가 찾고있는 예를 아래에서 참조하십시오. 왼쪽은 과거에 사용했던 소프트웨어입니다.
Show Summaries Limits 테이블에서 값을 플롯할 수 있으면 보고할 테이블을 제거할 수 있습니다(프레젠테이션에 배치하기에 가장 좋은 레이아웃).

Re: 관리도에 하한/상한 및 평균 플로팅세로 축을 더블 클릭하고 참조선을 추가하거나 이를 마우스 오른쪽 버튼으로 클릭하여 그래프 상자에 사용자 지정 그래픽 스크립트를 추가할 수 있습니다. 두 번째 옵션은 '도움말 > 스크립팅 인덱스'에서 'H Line'을 검색합니다.