<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요 여러분,
출력 중 하나가 이변량 플랫폼을 사용하는 이변량(XY) 플롯인 스크립트가 있습니다. 기본적으로 y축의 장치 매개변수 값과 x축의 시간을 플로팅합니다. 이러한 부분에는 원본 데이터 테이블의 열에 공통 ID 값이 있습니다.
이제 플랫폼에는 하나의 마커를 클릭하면 해당 마커가 기반으로 하는 행이 데이터 테이블에서 선택되는 기능이 이미 있습니다(디스플레이 상자의 다른 마커가 흐려짐). 내가 원하는 것은 사용자가 하나의 마커를 클릭할 때 동일한 ID 값을 가진 다른 모든 마커도 강조 표시되는 것입니다. 나는 이것을 할 방법을 찾기 위해 고군분투하고 있습니다. 플랫폼에 이미 존재하는 이벤트 처리 코드에 액세스할 수 있습니까(즉, 사용자가 마커를 클릭할 때 행을 선택하거나 플롯 창에서 사각형을 클릭하고 끌 때 여러 행을 선택할 수 있는 이유)?
이에 대한 도움을 주시면 대단히 감사하겠습니다.
감사.
참고로 행 상태 핸들러를 사용하는 또 다른 접근 방식은 다음과 같습니다.
이름 기본값은 여기 ( 1 ) ;
// 테이블
dt = 새 테이블 ( "이변량 ID 선택" ,
행 추가 ( 10 ) ,
새 열 ( "ID" , 숫자 , "명사 같은" , 체재 ( "최고" , 12 ) , 값 설정 ( [ 2014년 , 2011년 , 2012년 , 2013년 , 2014년 , 2011년 , 2013년 , 2012년 , 2011년 , 2014년 ] ) ) ,
새 열 ( "엑스" , 숫자 , "마디 없는" , 체재 ( "최고" , 12 ) , 값 설정 ( [ 1 , 2 , 삼 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] ) ) ,
새 열 ( "와이" , 숫자 , "마디 없는" , 체재 ( "최고" , 12 ) , 값 설정 ( [ 20 , 21 , 25 , 28 , 30 , 31 , 33 , 36 , 37 , 40 ] ) ) ,
레이블 열 설정 ( : ID )
) ;
// 행 상태 핸들러 함수
selectMatchingID = 기능 ( { 엑스 } ,
// 현재 선택된 행 가져오기
선택된 행 = [] ;
나 = 1 ;
각 행에 대해 (
만약에 ( 선택된 ( 행 상태 () ) ,
선택된 행 = V 콘캣 ( 선택된 행 , 나 )
) ;
나 ++;
) ;
// 선택 항목이 있으면 모든 필수 행으로 '확장'합니다.
만약에 ( N 행 ( 선택된 행 ) > 0 ,
확장선택된 행 = [] ;
을 위한 ( 나 = 1 , 나 <= N 행 ( 선택된 행 ) , 나 ++,
이 아이디 = : ID [ 선택된 행 [ 나 ]] ;
일치하는 행 = dt << getRows어디 ( : ID == 이 아이디 ) ;
확장선택된 행 = V 콘캣 ( 확장선택된 행 , 일치하는 행 ) ;
) ;
dt << 선택 행 ( 확장선택된 행 ) ;
) ;
) ;
// 테이블에 핸들러 할당
rsh = dt << MakeRowStateHandler ( selectMatchingID ) ;
// 그래프 빌더로 사용해 보기
dt << 그래프 빌더 (
크기 ( 530 , 454 ) ,
제어판 표시 ( 0 ) ,
변수 ( 엑스 ( : 엑스 ) , 와이 ( : 와이 ) ) ,
집단 ( 포인트들 ( 엑스 , 와이 , 전설 ( 5 ) ) , 더 매끄럽게 ( 엑스 , 와이 , 전설 ( 6 ) ) )
) ;
안녕하세요 여러분,
작동하는 방법을 찾았습니다. 기본적으로 그래픽 스크립트를 만들고 거기에 선택한 행에서 ID를 가져오는 코드를 작성한 다음 select where 문을 사용하여 해당 ID를 가진 모든 행을 일치시키면 됩니다. 이변량 창에서 여러 포인트를 클릭하고 드래그하는 경우에도 작동합니다. 아래 샘플 코드.
xParam ="Column Name 1 Here";
yParam = "Column Name 2 Here";
idParam = "Column Name 3 Here";
//tableRef = data table reference
bivPlatform = Bivariate(
Y( Eval(yParam) ),
X( Eval(xParam) ),
);
bivReport = bivPlatform << Report;
bivFrame = bivRawReport[FrameBox( 1 )]; //Assign reference to framebox
// Add Graphics script to select all rows with matching ID when one row is selected on the graph
bivFrame << Add Graphics Script( 2, //Order graphics script is run with respect to other elements in Frame box (Not really needed here)
//Get selected IDs
selectedIDMatrix = tableRef:idParam[ ( tableRef << Get Selected Rows() ) ];
//Get unique IDs (optional I guess)
idArray = Associative Array(selectedIDMatrix);
uniqueIDMatrix = idArray << Get Keys;
//Select other datapoints with matching IDs
tableRef << Select Where( Contains( As List(uniqueIDMatrix), As Column(tableRef, idParam) ) );
);
안녕하세요 scwise님
감사합니다. JMP 12로 업그레이드할 때 이 기능을 사용할 수 있기를 기대합니다.
이변량 표시 상자 내에서 이 기능을 찾고 있었습니다. 위의 예를 사용하려면 2014년 데이터 포인트를 클릭하고 2014년 포인트를 모두 강조 표시하고 싶습니다. 순수한 스크립트 솔루션이 있기를 바랍니다.
어쨌든 답장을 보내주셔서 다시 한 번 감사드립니다.
엔켈레,
Fit X By Y Bivariate Graph에서 무언가를 선택할 수 있는지에 대한 질문에 감사드립니다. 그런 다음 선택한 포인트와 유사한 ID를 가진 강조 표시된 데이터 테이블에 대한 모든 해당 포인트를 다시 볼 수 있습니다.원하는 작업에 대한 보다 우아한 "처음부터 스크립팅" 답변이 있을 수 있지만 그래프를 데이터 필터로 사용할 수 있는 새로운 JMP 12 Application Builder 기능을 사용하는 쉬운 방법을 찾았습니다.그런 다음 현재 작업에서 이 기성품 스크립트의 일부를 사용할 수 있기를 바랍니다. 아니면 이 기능을 그대로 사용할 수도 있습니다.Mac용 JMP 12.1 릴리스를 사용하고 있습니다.
이 경우 ID, X 및 Y의 세 열로 설명한 것과 같은 간단한 데이터 테이블을 만들었습니다. 여러 ID에는 X 및 Y 측정값이 서로 다른 여러 행이 있습니다. 그런 다음 데이터 테이블을 결합한 다음 열 분포를 아래의 하나의 창으로 결합했습니다(JMP에서 Windows를 결합하여 사용자 정의 보고서 보기를 얻음). 따라서 초기 설정을 볼 수 있습니다.

그런 다음 X에 의한 Y의 이변량 맞춤을 보여주는 그래프를 만들었습니다.이 시점에서 점을 선택하면 실제로는 X 및 Y 좌표만을 기준으로 선택하는 것입니다.해당 지점에 대한 ID 레이블을 표시하는 것은 문제가 없지만 정확한 지점을 데이터 테이블로 다시 음영 처리(선택)할 뿐입니다.따라서 문제는 Bivariate가 공통 ID가 아닌 유사한 X 및 Y 좌표만을 기반으로 일치 항목을 찾고 있다는 것입니다.다음 맞춤 보고서 보기를 참조하세요.
따라서 이변량 옆에 "도우미" 그래프를 만들어 클릭 한 번으로 모든 관심 있는 ID 지점을 선택할 수 있도록 하여 이 작업을 정말 쉬운 2단계 프로세스로 만들 수 있다고 생각했습니다.이를 위해 나는 ID에 대한 분포(더 나은 선택 기능을 위해 명목 데이터 열 유형으로 만들었습니다)를 만든 다음 모자이크 플롯을 제외한 모든 표시 옵션을 끕니다.그런 다음 분포 및 이변량 그래프를 하나의 창에 결합하여 다른 사용자 정의 보고서 보기를 얻습니다.그런 다음 보고서 헤더의 빨간색 삼각형 아래에서 Application Builder 작업 공간을 불러오는 Edit Application 버튼을 선택했습니다(기본 데이터 테이블을 선택한 후).이제 Application Builder에서 첫 번째 Distribution Mosaic Plot 그래프를 선택하고 마우스 오른쪽 버튼으로 클릭하고 Use As A Filter를 선택하는 것만큼 쉽습니다.이제 두 번의 클릭 솔루션을 가질 수 있습니다...먼저 내가 관심 있는 이변량 맞춤 Y By X 차트에서 점을 선택한 다음 부분적으로 음영 처리된 모자이크에서 전체 ID 위로 슬라이드하여 선택(클릭 방향)할 수 있습니다. 이제 데이터 테이블에서 유사한 ID가 모두 강조 표시됩니다.Mosaic Plot에서 선택한 후 동일한 ID 번호에 해당하는 모든 포인트를 X에 의한 이변량 맞춤 차트에서 그래픽으로 보는 것도 좋습니다.


이제 보고서 헤더 아래의 빨간색 삼각형으로 이동하고 스크립트 창에 스크립트를 저장하여 이 보기를 생성할 때 생성된 기본 스크립팅 작업을 볼 수 있습니다.다시 한 번 이것은 Bivariate Fit Y By X에서 직접 수행할 수 있는 것만큼 매끄럽지는 않지만 즉시 사용 가능한 솔루션을 보여주고 일부 스크립팅을 자동으로 생성하는 방법을 제공합니다.체크아웃할 수 있도록 저장된 스크립트와 함께 이 JMP 작업 파일에 첨부합니다.
도움이 되었기를 바랍니다!