<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 )
) ;
// 행 상태 핸들러 함수
일치ID 선택 = 기능 ( { 엑스 } ,
// 현재 선택된 행을 가져옵니다.
선택된 행 = [] ;
나 = 1 ;
각 행에 대해 (
만약에 ( 선택된 ( 행 상태 () ) ,
선택된 행 = V 연결 ( 선택된 행 , 나 )
) ;
나 ++;
) ;
// 선택 항목이 있으면 필요한 모든 행으로 '확장'합니다.
만약에 ( N 행 ( 선택된 행 ) > 0 ,
확장선택된 행 = [] ;
을 위한 ( 나 = 1 , 나 <= N 행 ( 선택된 행 ) , 나 ++,
이ID = : ID [ 선택된 행 [ 나 ]] ;
일치하는 행 = dt << getRowsWhere ( : ID == 이ID ) ;
확장선택된 행 = V 연결 ( 확장선택된 행 , 일치하는 행 ) ;
) ;
dt << 행 선택 ( 확장선택된 행 ) ;
) ;
) ;
// 테이블에 핸들러를 할당합니다.
rsh = dt << MakeRowStateHandler ( 일치ID 선택 ) ;
// 그래프 빌더로 시험해 보세요
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 레이블을 표시하는 것은 문제가 되지 않지만 이렇게 하면 정확한 지점을 데이터 테이블에 다시 음영 처리(선택)하게 됩니다.따라서 문제는 이변수가 공통 ID가 아닌 유사한 X 및 Y 좌표만을 기반으로 일치 항목을 찾는다는 것입니다.다음 맞춤 보고서 보기를 참조하세요.
그래서 이변량 옆에 "도우미" 그래프를 생성하여 한 번의 클릭으로 관심 있는 모든 ID 지점을 선택할 수 있게 함으로써 이 작업을 정말 쉬운 2단계 프로세스로 만들 수 있을 것이라고 생각했습니다.이를 위해 ID에 대한 분포(더 나은 선택 기능을 위해 명목 데이터 열 유형으로 만들었습니다)를 만든 다음 모자이크 플롯을 제외한 모든 표시 옵션을 껐습니다.그런 다음 분포 및 이변량 그래프를 하나의 창에 결합하여 또 다른 사용자 정의 보고서 보기를 얻습니다.그런 다음 보고서 헤더의 빨간색 삼각형 아래에서 Application Builder 작업 공간을 불러오는 Edit Application 버튼을 선택했습니다(기본 데이터 테이블을 선택한 후).이제 Application Builder에서는 첫 번째 분포 모자이크 플롯 그래프를 선택하고 마우스 오른쪽 버튼을 클릭한 후 필터로 사용을 선택하기만 하면 됩니다.이제 두 번의 클릭 솔루션을 사용할 수 있습니다. 먼저 Bivariate Fit Y By X 차트에서 관심 있는 점을 선택한 다음 위로 슬라이드하여 부분적으로 음영 처리된 모자이크에서 전체 ID를 선택(클릭 방향)할 수 있습니다. 이제 데이터 테이블에서 유사한 ID가 모두 강조 표시됩니다.또한 모자이크 플롯에서 선택한 후 동일한 ID 번호에 해당하는 모든 포인트를 Bivariate Fit Y By X 차트에서 그래픽으로 볼 수 있어서 좋습니다.


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