Mousetrap()을 사용한 중첩 차트 드릴다운드릴다운 기능이 있는 차트를 작성하는 사용 사례가 있습니다.
사용자는 차트의 한 지점을 클릭하고 Mousetrap() 함수를 사용하여 스크립트를 실행하여 좀 더 자세한 드릴다운 정보가 있는 다른 차트가 포함된 새 창을 표시합니다.
그런 다음 이 첫 번째 팝업 창에서 추가 수준의 드릴다운을 지원하고 싶습니다.
첨부된 스크립트에서 BigClass 데이터셋을 사용하여 간단한 예제로 설명하겠습니다.
스크립트의 메모는 문제를 강조합니다. 하나의 mouse-trap() 함수 호출만으로 첫 번째 드릴다운이 작동합니다.
그러나 두 번째 마우스 트랩을 추가하는 경우, 특히 첫 번째 드릴다운의 결과인 그래프에 추가하면 두 번째 드릴다운 동작이 첫 번째 마우스 클릭에 적용되는 일이 발생합니다. 이는 예상치 못한 일입니다. .
이와 같이 MouseTrap()을 사용할 수 있는지 확실하지 않습니까?
디
Re: Mousetrap()을 사용한 중첩 차트 드릴다운@Mark_Bailey graphlet에 대한 참조에 감사드립니다!
@tsl 따라서 여러 수준에서 드릴다운할 수 있습니다. 매우 좋습니다. 이것은 데이터 시각화 자체를 사용하여 데이터에 대해 학습하여 초점을 좁힐 수 있는 좋은 방법입니다.
그래프렛을 사용하여 JMP15에서 이를 수행할 수 있는 방법을 세어 보겠습니다. 이 새로운 기능은 "도자기 + 배관" 아키텍처를 따릅니다. 즉, 사용자 지정 사례를 구현하기 위해 액세스할 수 있는 프로그래밍(JSL) API 위에 구축된 표준 동작을 달성하기 위한 사전 정의되고 사용하기 쉬운 방법이 있습니다. 설명한 시나리오는 두 가지 다른 "도자기" 또는 포인트 앤 클릭 접근 방식을 사용하여 구현할 수 있습니다.
초점이 특정 단일 측정(예: 높이)에 있는 경우 히스토그램과 같은 Graphlet 사전 설정을 사용할 수 있습니다. 기준선 그래프를 생성한 후 그래프 배경을 마우스 오른쪽 버튼으로 클릭하여 새로운 "호버 레이블" 메뉴에 액세스합니다. 거기에서 사전 설정 옵션을 볼 수 있습니다

그래플릿 사전 설정은 표시된 시각화 유형의 그래플릿을 생성하여 기준선 그래프에서 선택한 변수에서 역할 매핑을 파생합니다. 베이스라인 그래프는 높이 변수의 수를 보여주기 때문에 히스토그램 그래프릿 사전 설정은 주어진 각 막대에 대한 해당 변수의 분포를 자동으로 보여줍니다.그러나 각 막대는 이미 단일 높이 값으로 필터링되므로 흥미로운 분포가 아닙니다. 기준선이 대신 히스토그램이라고 가정해 보겠습니다. 히스토그램 사전 설정은 각 빈의 값 분포를 보여줍니다.

호버 레이블 축소판이 그래프 미리보기처럼 작동하는 방식에 유의하십시오. 계속해서 축소판 이미지를 클릭하면 새 창에서 동등한 그래프가 시작됩니다. 이 새 그래프는 시각적 요소(이 경우 60-62 bin)에 해당하는 행만 포함하도록 필터링되어 드릴다운 작업을 구현합니다. 필터 작업은 축소된 로컬 데이터 필터를 사용하여 구현되어 관련 없는 선택 변경 사항에 탄력적으로 대응하고 필터 설정의 변경 사항을 통해 추가 탐색을 허용합니다.

Graphlet 사전 설정의 또 다른 특징은 고급 드릴다운 시나리오를 지원하기 위해 재귀적으로 미리 구성되어 있다는 것입니다. 따라서 계속해서 새 히스토그램의 저장소와 상호 작용할 수 있습니다. 드릴다운할 수도 있음을 알 수 있습니다.

이제 페이지에 첨부된 .jsl 예제에는 각 드릴다운 수준에서 특정 값에 대한 시각화 유형 및 역할 할당이 선택되는 보다 복잡한 드릴다운 시나리오가 있습니다.
* 레벨 0(기준선): 높이 값 카운트
* 레벨 1: 성별에 따른 체중의 박스 플롯
* 레벨 2: 로그에 표시되는 행 세부 정보
이 수준의 사용자 지정은 여전히 다른 유형의 "도자기"인 Paste Graphlet 명령을 사용하여 수행할 수 있습니다. 이 명령을 사용하면 사용자가 각 수준에서 시각적 요소를 드릴다운할 때 사용되는 그래플릿 정의를 "스택"할 수 있습니다.
따라서 기준선 그래프를 생성한 후 계속 진행하여 원하는 각 드릴다운 수준을 나타내는 그래프를 생성합니다. 필터링에 대해 걱정하지 마십시오. 이전 사례에서와 같이 필터링이 자동으로 수행됩니다. 그런 다음 -부터 시작하여 마지막 level - 스크립트를 클립보드에 복사합니다.

그런 다음 이전 그래프로 이동한 다음 (스크립트를 a로) graphlet을 붙여넣습니다.

위의 이미지에서 레벨 1 드릴다운 그래프(성별 그래프렛에 따른 가중치)를 기본 그래프에 붙여넣었습니다. 결과:

이 시나리오가 정의되었으므로 레벨 2 페이스트 그래프렛이 필요하지 않았습니다. 호버링된 시각적 요소의 행 값을 표시하는 것은 이미 호버 레이블의 기본 동작입니다. 다음은 두 번째 상자 그림 위로 마우스를 가져간 후 두 번째 수준 드릴다운에서 볼 수 있는 내용입니다.

호버 레이블을 마우스 오른쪽 버튼으로 클릭하면 사용자가 내용을 복사하거나 데이터를 하위 집합으로 만들거나 호버 레이블 구성을 추가로 변경할 수 있습니다.
도움이 되었기를 바랍니다. 범주별 드릴다운 예를 보려면 다음에 대한 답변을 확인하십시오. https://community.jmp.com/t5/Discussions/drill-down-in-a-graph-hierarchy/mp/11702
Hover Label 사용자 지정에 대한 자세한 내용은 다음에서 확인할 수 있습니다. https://www.jmp.com/support/help/en/15.0/index.shtml#page/jmp/add-hover-graphs.shtml#
graphlet에 대한 정보는 구체적으로 다음 위치에 있습니다. https://www.jmp.com/support/help/en/15.0/index.shtml#page/jmp/add-graphs-or-images-to-hover-labels.s...
Re: Mousetrap()을 사용한 중첩 차트 드릴다운고맙습니다 ! 훌륭한 제안! 그것은 작동하고 당신이 언급했듯이 기능으로 분리하여 더 나은 코드를 만듭니다. 실제로 4단계의 점진적 드릴다운이 있는 "실제" 사용 사례에 이것을 통합할 수 있었기 때문에 함수를 사용하면 훨씬 더 읽기 쉽습니다.Re: Mousetrap()을 사용한 중첩 차트 드릴다운멋진 아이디어! 코드를 함수로 옮기면 작동합니다.
makesubset = Function( {_x},
{TestWin}, // local variables
dt << select where( :height == _x );
TestWin = New Window( "Drill Down Window",
dt << GraphBuilder( Size( 534, 448 ), Show Control Panel( 0 ),
Where( Selected() ), Variables( X( :sex ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 4 ) ), Box Plot( X, Y, Legend( 5 ) ) )
)
);
TestWin[FrameBox( 1 )] << add graphics script(
Mousetrap(
_x2 = Round( X, 0 );
Show( _x2 );
)
);
);
dt = Open( "$sample_data/big class.jmp" );
dt << Graph Builder( Size( 527, 454 ), Show Control Panel( 0 ),
Variables( X( :height ) ), Elements( Bar( X, Legend( 6 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", FrameBox,
{Add Graphics Script( 2, Description( "Script" ),
Mousetrap(
_x = Round( X, 0 );
makesubset( _x );
)
), Grid Line Order( 1 ), Reference Line Order( 3 )}
)
)
);Mousetrap 기능은 실제로 다른 기능처럼 실행되지 않기 때문에 설명하는 방식으로 작동합니다. <
나는 그것이 마지막 것을 유지한다고 생각합니다. 스캐닝은 함수 호출을 따르지 않으며 함수 호출로 인해 JSL을 더 쉽게 읽고 유지 관리할 수 있습니다.
@EvanMcCorkle 예, 쥐덫 안에서 쥐덫을 찾는 것이 이상해 보입니다.
Re: Mousetrap()을 사용한 중첩 차트 드릴다운JMP 15는 바로 이러한 목적을 위해 '호버 레이블'을 도입했습니다. 함께 작동하는 세 가지 측면인 그래프렛, 텍스트렛 및 그리드렛이 있습니다.
도움말 > JMP 설명서 라이브러리 > 스크립팅 안내서 > 9장: JMP 보고서, 512페이지를 참조하십시오. 드릴다운 동작을 구현하는 방법을 배울 수 있는 많은 설명과 예제가 있습니다.