행의 열에 정의된 UCL/LCL 플로팅안녕,
특정 행의 열에 이러한 제한이 정의된 경우 LCL/UCL을 모든 유형의 플롯에 추가하는 스크립트 방법을 공유할 수 있습니까? 테이블에는 플롯되는 여러 매개변수(레이블 열로 식별됨)가 있으므로 각 차트에는 해당 행의 각 차트 유형에 대해 정의된 서로 다른 제한 세트가 있습니다.
예를 들어(붙임) 예를 들어 누적 데이터 테이블이 있는 큰 클래스 예제에서 UCL/LCL의 두 열이 있다고 가정합니다.
각 열의 높이에 대해 정의된 대로 LCL 및 UCL을 사용하여 높이에 대한 오버레이 플롯을 생성하는 짧은 스크립트를 작성할 수 있습니까?
질문이 이해되기를 바랍니다.
감사해요!!
Re: 행의 열에 정의된 UCL/LCL 플로팅UCL/LCL이 시간이 지남에 따라 변할 때 이것을 플롯하는 이상적인 방법이 누구에게 있습니까?
JIM이 제안한 방법 @txnelson 정적 UCL/LCL 제한에 적합합니다. 하지만 변화하는 한계에 대해 어떻게 해야 할지 모르시겠다고요?
Re: 행의 열에 정의된 UCL/LCL 플로팅Overlay Plot이 정확히 무엇을 하려는지 잘 모르겠습니다.플롯을 대화식으로 실행하여 원하는 형식으로 만든 다음 빨간색 삼각형으로 이동하여 JMP에서 스크립트를 저장하도록 선택하면 됩니다.그러나 당신이 보여준 JSL에 대해 :
오버레이 사양에 X() 요소가 없습니다.귀하가 변경했다고 표시한 샘플
op = Overlay Plot( Y( :data ), by( :label ) );
올바른 형식이 아니었습니다.올바른 예는
op = Overlay Plot( X( :name ), Y( :Data ), by( :label ) );
따라서 사용해야 하는 사양은 다음과 같습니다.
op = Overlay Plot( Y( :data1, :data2), X(:data3 ), by( :label ) , needle (1) );
Re: 행의 열에 정의된 UCL/LCL 플로팅안녕,
JSL 초보자로서 나는 귀하의 접근 방식을 복사했으며 플롯된 데이터의 단일 열에 대해 완벽하게 작동합니다(감사합니다!). 그러나 플롯에 2개의 열(및 그 사이에 바늘)을 더 포함하고 싶습니다. 이로 인해 현재 3개의 열이 있지만 UCL/LCL이 없는 플롯이 생성됩니다.
나는 "op = Overlay Plot( Y( :data ), by( :label ) ); "
에게
"op = 오버레이 플롯( Y( :data1, :data2, :data3 ), by( :label ) , 바늘(1) ); "
이것이 왜 그런지, 어떻게 고칠 수 있는지 아십니까? 감사해요!
Re: 행의 열에 정의된 UCL/LCL 플로팅어떤 차트를 사용할 수 있는지 알아보는 가장 좋은 방법은 Essential Graphing 문서를 살펴보는 것입니다.
도움말==>필수 그래프 작성
그런 다음 그래프를 실행한 후 그래픽 출력의 빨간색 삼각형에서 선택하여 스크립트를 저장할 수 있습니다.거기에서 그래프를 생성하는 데 필요한 코드를 얻을 수 있습니다.
아래는 이전에 제공된 스크립트에 대한 수정입니다.참조선이 표시되는지 확인하도록 수정했습니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :Label ) );
// Generate the Plot code
op = Overlay Plot( X( :name ), Y( :Data ), by( :label ) );
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group
LCL = :LCL[(dt << get rows where( :Label == byVals[i] ))[1]];
UCL = :UCL[(dt << get rows where( :Label == byVals[i] ))[1]];
// Make sure the UCL and LCL values are displayed
chartMin = Min( :data[dt << get rows where( :Label == byVals[i])]);
chartMax = Max( :data[dt << get rows where( :Label == byVals[i])]);
If(LCL < chartMin, chartMin = LCL );
If(UCL > chartMax, chartMax = UCL );
chartRange5% = (chartMax - ChartMin)/20;
chartMin = chartMin - chartRange5%;
chartMax = chartMax + chartRange5%;
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:Label == __byVals__},
Y Axis[1] << {{Min( __min__ ), Max( __max__ ),
Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LCL", 1 ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UCL", 1 )}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL,
Expr( __min__ ), chartMin,
Expr( __max__ ), chartMax
)
);
);Re: 행의 열에 정의된 UCL/LCL 플로팅Jim에게 감사합니다. 이것은 오버레이 차트에서 작동합니다. 내가 할 수 있는 참조를 가리킬 수 있습니까? 다른 차트의 설정에 대해 알아보기 ) 다른 차트도 그립니다. 스크립팅 가이드는 그다지 도움이 되지 않습니다.
또한 한 가지 더, 한계선이 보이도록 하는 선을 추가할 수 있습니까? 현재 그들은 보이지 않습니다.
시간 내주셔서 다시 한 번 감사드립니다.
Re: 행의 열에 정의된 UCL/LCL 플로팅Jim에게 감사합니다. 이것은 오버레이 차트에서 작동합니다. 다른 차트도 그릴 수 있는 참조를 가리킬 수 있습니까? 스크립팅 가이드는 그다지 도움이 되지 않습니다.
또한 한 가지 더, 한계선이 보이도록 하는 선을 추가할 수 있습니까? 현재 그들은 보이지 않습니다.
시간 내주셔서 다시 한 번 감사드립니다.
Re: 행의 열에 정의된 UCL/LCL 플로팅다음은 샘플 데이터 테이블에 대해 원하는 것을 생성하는 시작 스크립트 tat입니다.오버레이 플롯을 생성합니다.가변성 차트에 대해 동일한 작업을 수행하려면 플랫폼마다 옵션 등이 다르기 때문에 약간의 수정이 필요합니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :Label ) );
// Generate the Plot code
op = Overlay Plot( X( :name ), Y( :Data ), by( :label ) );
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group
LCL = :LCL[(dt << get rows where( :Label == byVals[i] ))[1]];
UCL = :UCL[(dt << get rows where( :Label == byVals[i] ))[1]];
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:Label == __byVals__},
Y Axis[1] << {{Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LCL", 1 ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UCL", 1 )}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL
)
);
);Re: 행의 열에 정의된 UCL/LCL 플로팅1. 이름 열이 X축이라고 가정합니다.
- 예를 들어 오버레이 플롯을 사용했는데, y축에 숫자 값(예: 키 또는 체중)이 있는 모든 플롯입니다. X 축은 제안한대로 이름이 될 수 있습니다.
2. LCL 및 UCL 값은 "높이"로 정의된 행의 각 행에 대해 모두 동일합니다.이것이 사실입니까, 아니면 실제 데이터 테이블의 경우 LCL 및 UCL 값이 변경됩니까?
- 레이블 범주의 다른 범주에 대해 제한이 변경될 수 있습니다. (명확히 하기 위해: 키에 대한 하나의 LCL/UCL, 체중에 대한 다른 UCL/LCL)
3. "오버레이 플롯"이라고 하면 구체적으로 JMP의 오버레이 플랫폼을 언급하는 것입니까, 아니면 데이터 값이 LCL 및 UCL과 오버레이되고 그래프 빌더 플랫폼을 사용할 수 있음을 나타내는 것입니까?
- 중첩 플롯과 한계가 있는 가변성 플롯이 있는 예시로 플롯을 첨부합니다. (이것은 플롯에 선을 추가하여 수동으로 생성되었습니다.) 유사한 플롯을 찾고 있습니다.
시간 내주셔서 감사합니다!!
Re: 행의 열에 정의된 UCL/LCL 플로팅1. 이름 열이 X축이라고 가정합니다.
2. LCL 및 UCL 값은 "높이"로 정의된 행의 각 행에 대해 모두 동일합니다.이것이 사실입니까, 아니면 실제 데이터 테이블의 경우 LCL 및 UCL 값이 변경됩니까?
3. "오버레이 플롯"이라고 하면 구체적으로 JMP의 오버레이 플랫폼을 언급하는 것입니까, 아니면 데이터 값이 LCL 및 UCL과 오버레이되고 그래프 빌더 플랫폼을 사용할 수 있음을 나타내는 것입니까?