열을 이변량 테이블에 대한 참조선으로 사용하려면 어떻게 해야 합니까? 제어 상한, 경고 상한, 경고 하한 및 제어 하한으로 4개의 열이 있는 데이터 테이블이 있습니다. 데이터 테이블에는 많은 변수가 있는 열도 있습니다. 각 변수에는 특정 한계값이 있습니다. 변수로 값 대 시간을 표시하려고 하지만 y축에 추가된 특정 변수 차트에 대한 제한을 원합니다.
큰 클래스의 jmp 파일을 예시로 첨부했지만 UCL, CL, LCL로 구성된 구성을 추가했습니다. 내가 원하는 것은 성별(변수)별로 체중(내 가치) 대 키(시간)를 그래프로 표시하는 것입니다. 그러나 UCL, CL 및 LCL 열이 적절한 변수 차트에 대한 y축의 제한으로 표시되기를 원합니다. 이것이 좀 명확하기를 바라십니까? 도움을 주시면 감사하겠습니다.
빠른 질문. (:sex)가 아닌 다른 종류의 제한이 있는 여러 By 그룹이 있는 경우 어떻게 합니까?
Summarize( dt, byVals = by( :sex, :age ) );
UCL = :UAL[(dt << get rows where( :sex, :age == byVals[i] ))[1]];
현실은 UWL 및 LWL 차트가 모두 실패하고 있다는 것입니다.UWL 차트에는 문제가 표시되지 않습니다.차트에 값이 누락된 값인 "."일 때 차트에 참조선 추가를 지정하면 코드가 해당 지점부터 차트에 대한 작동을 중지하는 것으로 보입니다.UWL 차트의 경우 코드가 LWL 참조선에 대한 누락된 값에 도달할 때 작동을 중지하기 전에 표시하려는 모든 참조선을 나열했습니다.그러나 LWL 차트에서 UWL 참조선은 LWL 참조선보다 먼저 시도되고 코드는 UWL 참조선에 대한 누락된 값을 찾으면 작동을 멈춥니다.이 문제를 해결하는 여러 가지 다른 방법이 있습니다. 아래는 이를 처리하는 한 가지 방법입니다.
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( :sex ) );
// Generate the Plot code
op = Overlay Plot(
X( :height ),
Y( :weight ),
by( :sex ),
SendToReport(
Dispatch(
{},
"101",
ScaleBox,
{Label Row( Label Orientation( "Vertical" ) )}
)
)
);
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group. UWL is only for F and LWL is for M
UCL = :UAL[(dt << get rows where( :sex == byVals[i] ))[1]];
LCL = :LAL[(dt << get rows where( :sex == byVals[i] ))[1]];
UWL = :UWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
LWL = :LWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
show(byvals[i],ucl,lcl,uwl,lwl);
// Make sure the UCL and LCL values are displayed
chartMin = Min( :weight[dt << get rows where( :sex == byVals[i])]);
chartMax = Max( :weight[dt << get rows where( :sex == 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(
{:sex == __byVals__},
Y Axis[1] << {{Min( __min__ ), Max( __max__ ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UAL", 1 ),
Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LAL", 1 ),
Add Ref Line( __WLVal__, "dotted", "Medium Dark Red", __WL__, 1 )
}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL,
Expr( __WLVal__ ), If(isMissing(UWL)==0,UWL,LWL),
Expr( __WL__ ), If(isMissing(UWL)==0,"UWL","LWL"),
Expr( __min__ ), chartMin,
Expr( __max__ ), chartMax
)
);
);내가 필요한 것을 위해 스크립트를 수정했습니다. 그것은 내가 필요한 것을 위해 작동합니다. 그러나 이제 추가 참조 라인을 추가했으므로 문제가 있습니다. 첨부된 것은 일반적인 예입니다. 추가 열이 있는 Bigclass가 첨부되고 스크립트가 수정되었습니다. 경고 상한을 포함하려고 하지만 값은 성별 F에만 사용할 수 있습니다. 그리고 M 그룹의 경우 경고 하한이 있습니다. 스크립트를 실행하면 그룹 F에 대한 첫 번째 그래프에 UWL이 표시되지만 두 번째 그래프 그룹 M에는 LWL이 표시되지 않습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
내가 필요한 것. 이것은 물론 JMP12에서만 작동합니다. 고맙습니다.
이전에 이것을 다룬 토론 트랙이 있습니다.보다:
열에 UCL/LCL 정의