graphbuilder 플롯에서 프레임 상자 수를 얻습니까?안녕하세요. graphbuilder 플롯에서 프레임 상자 수를 얻는 좋은 방법이 있는지 알고 싶습니다. 104FB (8 개의 X 그룹, 13 개의 Y 그룹)가 포함 된 GB 플롯이 있습니다. 각 FB의 마커 크기를 변경하는 스크립트를 작성했습니다.
Summarize(dtstack, frame_lis = By(:Freq, :Image, :Region));
For(i=1, i<=NItems(frame_lis[1]), i++,
Try(
Report(gb) << Dispatch({}, "Graph Builder", FrameBox(i),
{Marker Size(1)}
)
)
);(신용 @ms 에 https://community.jmp.com/t5/Discussions/Can-t-change-all-marker-size-in-Graph-Builder-by-script/mp/3928 ). 그러나 필자의 경우 Summarize 문은 Region, Image 또는 Freq의 특정 값을 포함하는 테이블에서 여러 행을 제외했기 때문에 FB의 수를 과대 평가합니다. 이 스크립트는 작동하지만 카운터 i가 GB 플롯의 실제 FB 수를 초과하면 로그에 오류 메시지가 표시되기 시작합니다 ( "{}에서"FrameBox [ "Graph Builder"]를 찾을 수 없음 "). "Try"문은 오류 메시지를 방지하려는 시도 였지만 작동하지 않았습니다. 어쨌든 나는 프레임 상자의 정확한 수를 계산함으로써 이것을 피하는 것을 선호합니다. 누구나 아이디어가 있습니까?
제도법스크립팅Re : graphbuilder 플롯에서 프레임 상자 수를 얻습니까?질문에 직접 답하기 위해 XPath 쿼리로 반환 된 항목을 계산할 수 있습니다.그러나 더 나은 해결책은 Dispatch를 사용하는 대신 XPath로 반환 된 모든 결과에 Marker Size 메시지를 보내는 것입니다.
Names Default To Here( 1 );
dt = Open( "$sample_data\Big Class.jmp" );
gb = Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group Y( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ) ),
);
//Count Frame boxes here
N Items( (gb << XPath( "//FrameBox" )) );
//Or just update them all
(gb << XPath( "//FrameBox" )) << Marker Size( 8 );
Re : graphbuilder 플롯에서 프레임 상자 수를 얻습니까?감사 @ih . 잘 된 것 같습니다. 어떤 이유로 귀하의 답변을 해결책으로 받아들이려고 할 때 오류가 발생하지만 이것이 해결책이었습니다.