대화형 그래프에서 하위 집합을 생성하시겠습니까?안녕하세요. 요약 테이블의 데이터를 표시하기 위해 대화형 그래프를 만들려고 합니다. 목표는 특정 지점의 데이터 부분 집합을 클릭할 수 있는 지점이 있는 선 그래프를 만드는 것입니다. 예를 들어 아래 스크립트에는 Big Class 샘플 테이블의 연령별 요약 테이블 그래프가 있습니다. 사용자는 그래프의 한 지점을 클릭하고 해당 지점의 모든 데이터가 포함된 하위 집합 테이블을 자동으로 가져올 수 있어야 합니다.
내가 겪고 있는 문제는 데이터가 선택되지 않았기 때문에 한 번의 클릭이 작동하지 않는다는 것입니다. 사용자는 데이터를 선택하기 위해 포인트를 두 번 클릭한 다음 하위 집합 표현식을 실행하기 위해 다시 클릭해야 합니다. 세 번 클릭하지 않고도 이를 수행할 수 있는 방법이 있습니까? 감사합니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dtSummary = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
output table name( "dtSummary" )
);
gbExpr = Expr(
gb = Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :N Rows ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-1], 4, [-1]} ), Position( {-1, -1} )}
)
)
);
);
ExprA = Expr(
dtSubset = dt << Subset( Output Table( "Subset" ), Selected Rows( 1 ), Selected Columns( 0 ));
dtSummary << Clear Selected Rows;
);
GraphWindow = New Window( "Graph" );
GraphWindow << Append(
MouseBox(
gbExpr,
<<SETCLICKENABLE></SETCLICKENABLE>Re: 대화형 그래프에서 하위 집합을 생성하시겠습니까?JMP 15.0에서는 설명한 대로 정확하게 작동하는 호버 라벨에 하위 집합 RMB 메뉴 옵션이 추가되었습니다.
이제 모든 그래프에는 이 기능이 내장되어 있습니다.
방금 시도했는데 결과는 스크립트를 실행할 때와 정확히 동일합니다.
별도의 요약 테이블을 만들 필요가 없습니다. 새로운 기능은 선 차트, 막대 차트 등과 같은 그래프로 수행된 집계를 "이해"합니다.
즉, 하위 집합은 포인터 아래의 시각적 요소 정의에서 파생된 로컬 데이터 필터를 기반으로 합니다.
이 기술은 그래프렛 생성 및 새 창에서의 실행(드릴다운이라고도 함)도 지원합니다.
자세한 내용은 다음을 확인하세요. https://www.jmp.com/content/dam/jmp/documents/en/support/jmp15/using-jmp.pdf , 512페이지.

Re: 대화형 그래프에서 하위 집합을 생성하시겠습니까?Mouse Box의 대안은 행 상태 처리기를 데이터 테이블에 적용하는 것입니다. 하위 세트를 생성하려면 한 번의 클릭이 필요합니다(의도하지 않은 하위 세트가 많이 생성될 수 있으므로 드래그하여 여러 점을 선택하려고 하면 성가실 수 있습니다).
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dtSummary = dt << Summary(Group(:age));
gbExpr = Expr(
gb = Graph Builder(
Show Control Panel(0),
Variables(X(:age), Y(:N Rows)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(4)))
)
);
ExprA = Expr(
dtSubset = dt << Subset(Selected Rows(1));
dtSummary << Clear Select;
);
f = Function({a}, ExprA);
rs = dt << make row state handler(f);
GraphWindow = New Window("Graph", gbExpr);
Re: 대화형 그래프에서 하위 집합을 생성하시겠습니까?완벽한. 매우 도움이 됩니다.매우 감사합니다.
Re: 대화형 그래프에서 하위 집합을 생성하시겠습니까?마우스 트랩을 사용하는 스크립트를 작성하는 모든 작업을 수행하는 동안 기본 마우스 동작을 사용하여 데이터 포인트를 선택한 다음 클릭만 하면 매우 간단한 스크립트로 원하는 작업을 수행할 수 있다고 생각합니다. 선택을 위해 추가된 버튼에

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);
subsetButton = Button Box( "Click to Create a Subset of Selected Points",
If( N Rows( dt << get selected rows ) > 0,
dt << subset( selected rows( 1 ), selected columns( 0 ) )
)
);
Report( gb )["Graph Builder"] << append( subsetButton );