<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요,
단일 창에 세 가지 다른 차트(IR, EWMA 및 CUSUM)를 플롯하고 있는데 문제는 차트 내에서 사용된 위치 조건도 표시 창에 표시한다는 것입니다.
디스플레이 창:

암호:
객체 = 새창 ( "트렌드 분석 보고서" || 긴 날짜 ( 오늘 ()) ,
vlb = V 목록 상자 ()
) ;
표시하다 = 기능 ({ 프로세스 , 상표 , 에 의해 , 소스 유형 , lmt1 , lmt2 , lmt3 } ,
r1 = 새창 ( "" ,
plb = 패널박스 ( "에 대한 관리 차트" || 프로세스 || " & " || " 소스 유형= " || 소스 유형 , 현재 데이터 테이블 ( dt ) ;
H 목록 상자 (
관리도 (
샘플 라벨 ( 열 ( dt , 상표 )) ,
그룹 규모 ( 1 ) , KSigma ( 삼 ) ,
열로 ( dt , 프로세스 ) , 개별 측정 ( LCL ( lmt1 [ 6 ]) , 평균 ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))) ,
어디 ( 열로 ( dt , 에 의해 ) == 소스 유형 ) ;
) ;
샘플 라벨 ( 열 ( dt , 상표 )) ,
표본의 크기 ( 1 ) ,
알파 ( 0.00269979606326021 ) ,
제한 범례 표시 ( 0 ) ,
열로 ( dt , 프로세스 ) , 누적 ( 양면 ( 1 ) , 평균 ( lmt2 [ 5 ]))) ,
어디 ( 열로 ( dt , 에 의해 ) == 소스 유형 ) ;
) ;
샘플 라벨 ( 열 ( dt , 상표 )) ,
표본의 크기 ( 1 ) ,
KSigma ( 삼 ) , 무게 ( 0.2 ) ,
열로 ( dt , 프로세스 ) , EWMA ( 평균 ( lmt3 [ 5 ]))) ,
어디 ( 열로 ( dt , 에 의해 ) == 소스 유형 ) ;
) ;
) ;
) ;
) ; vlb << 추가 ( r1 ) ; r1 << 창 닫기 ;
) ;
구성 = 기능 ({ ㅋㅋㅋ , pmt_경로 } ,
param_dt = 열려 있는 ( pmt_경로 , "보이지 않는" ) ;
param_summ = param_dt << 요약 ( 보이지 않는 ,
그룹 ( : 그룹화 기준 ,: 프로세스 ,: 샘플 라벨 ,: 에 의해 )) << 쇼윈도우 ( 0 ) ;
을 위한 ( 큐 = 12 , 큐 <= Nrow ( param_summ ) , 큐 ++, 현재 데이터 테이블 ( param_summ ) ;
col2 =: 프로세스 [ 큐 ] ; col3 =: 샘플 라벨 [ 큐 ] ; col4 =: 에 의해 [ 큐 ] ;
현재 데이터 테이블 ( ㅋㅋㅋ ) ;
clms = ㅋㅋㅋ << 열 이름 가져오기 ( 끈 ) ;
다음에서 제거 ( clms , 1 , 삼 ) ;
을 위한 ( 티 = 1 , 티 <= N개 품목 ( clms ) , 티 ++, 현재 데이터 테이블 ( ㅋㅋㅋ ) ;
indv_lmts = 열로 ( clms [ 티 ])[ ㅋㅋㅋ << 행 가져오기 ( : 매개변수 == col2 & : 차트 종류 == "개인" )] ;
cusum_lmts = 열로 ( clms [ 티 ])[ ㅋㅋㅋ << 행 가져오기 ( : 매개변수 == col2 & : 차트 종류 == "CUSUM" )] ;
ewma_lmts = 열로 ( clms [ 티 ])[ ㅋㅋㅋ << 행 가져오기 ( : 매개변수 == col2 & : 차트 종류 == "EWMA" )] ;
표시하다 ( col2 , col3 , col4 , clms [ 티 ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
) ;
) ;
) ;
왜 이런 일이 발생하는지 알 수 없습니다. 어떤 도움이라도 주시면 감사하겠습니다. 감사해요!!
의견을 보내주셔서 감사합니다. 이는 좋은 접근 방식인 것 같으며 반드시 시도해 볼 것입니다.
그동안 빠른 해결책을 찾고 있었지만 mpb 님의 솔루션이 잘 작동했습니다.
그러나 귀하의 접근 방식은 최종 사용자가 차트를 잘 해석할 수 있도록 설명이 필요하지 않습니다.
이 예가 도움이 되는지 확인하세요. 나는 Murphrey와 Lucas가 쓴 뛰어난 JSL 소개 Jump into JMP Scripting에서 예제를 수정했습니다.
dt = Open( "$SAMPLE_DATA/품질 관리/Diameter.jmp" );
cc = 관리도(
그룹 크기( 1 ),
KSigma( 3 ),
차트 열(:DIAMETER, 개별 측정),
여기서( :MACHINE == "A386" )
);
잠깐( 2 );
(보고서( cc ) << 상위)[텍스트 상자( 1 )] << 삭제;
잠깐( 2 );
where 절의 텍스트는 JMP의 표준 출력이며 코드에 특정하지 않습니다.예를 들어 이 스크립트는 다음과 같습니다.
관리도 (
그룹 규모 ( 1 ) ,
KSigma ( 삼 ) ,
차트 열 ( : 지름 , 개별 측정 ) ,
어디 ( : 기계 == "A386" )
) ;
출력은 다음과 같습니다.

불행하게도 이 텍스트는 디스플레이 트리에 나타나지 않는 것 같으므로 쉽게 제거할 수 없습니다.내가 취하는 접근 방식은 where 절이 필요하지 않도록 각 차트에 대한 데이터 하위 집합을 만드는 것입니다.여러 차트가 포함된 창을 구성하는 경우 "컨트롤 차트"라는 제목을 사용하면 유용한 정보가 추가되지 않으므로 이 텍스트를 데이터 하위 집합에 사용되는 선택 절로 바꿉니다.

전체 스크립트는 다음과 같습니다.
dt = 열려 있는 ( "$SAMPLE_DATA/품질 관리/Diameter.jmp" ) ;
// 'where' 절에 사용되는 열 이름
그룹 이름 = "기계" ;
// 창 닫기 이벤트 후 하우스키핑을 수행하려면 이 정보가 필요합니다.
ns = 새 네임스페이스 ( "삭제할 임시 테이블" ) ;
// 기계의 고유한 값을 얻습니다.
요약하다 ( 레벨 = 에 의해 ( AsColumn ( 그룹 이름 ) ) ) ;
뉴 = 새창 ( "내 차트" ,
HLB = H 목록 상자 ()
) ;
// 각 값을 반복합니다.
ns : lst테이블 = {} ;
을 위한 ( 나 = 1 , 나 <= N항목 ( 레벨 ) , 나 ++,
// 데이터 하위 집합을 생성합니다.
일치하는 행 = dt << 행 가져오기 ( AsColumn ( 그룹 이름 ) == 레벨 [ 나 ] ) ;
dt이름 = "에 대한 하위 집합" || 그룹 이름 || "=" || 레벨 [ 나 ] ;
dt하위 집합 = dt << 하위 집합 ( 행 ( 일치하는 행 ) , 출력 테이블 ( dt이름 ) , 보이지 않는 ) ;
// on close 이벤트에서 참조할 수 있도록 네임스페이스에 추가
에 집어 넣다 ( ns : lst테이블 , dt하위 집합 ) ;
// 컨테이너를 사용하여 창에 추가될 때까지 차트가 렌더링되지 않도록 합니다.
컨테이너 = V 목록 상자 (
참조 = dt하위 집합 << 관리도 (
그룹 규모 ( 1 ) ,
KSigma ( 삼 ) ,
차트 열 ( : 지름 , 개별 측정 ) ,
)
) ;
// 제목 수정
대표 = 참조 << 보고서 ;
산부인과 = 대표 [ 아웃라인박스 ( 1 )] ;
산부인과 << 제목 설정 ( 그룹 이름 || " = " || 레벨 [ 나 ]) ;
// 보고서 창에 추가
HLB << 추가 ( 컨테이너 )
) ;
// 관리 - 하위 집합 테이블 삭제
뉴 << 닫을 때 (
ns = 네임스페이스 ( "삭제할 임시 테이블" ) ;
을 위한 ( 나 = 1 , 나 <= N항목 ( ns : lst테이블 ) , 나 ++,
노력하다 ( 닫다 ( ns : lst테이블 [ 나 ] , 저장 안 함 ) )
)
) ;
그리고 관련 출력은 다음과 같습니다.

-데이브