SendToReport 기능을위한 그래프 빌더 내의 If 문안녕하세요,
Y 축이 특정 열 (예 : 오류) 인 경우에만 그래프의 Y 축을 변경할 수 있기를 원합니다. 그러나 graphbuilder가 내부의 if를 인식하지 못하는 것처럼 보입니다. 그러나 if 문을 사용하지 않으면 정상적으로 작동합니다. 그러나 모든 종류의 그래프 에이 동일한 그래프 함수를 사용할 수 있기를 원합니다.
graph_func = function({stackdt,title},{Default Local},
gb = Graph Builder(
Size( 1342, 905 ),
Variables(
X( :names ),
Y( as column(title) ),
Group X( :Type ),
Overlay( :GROUPs )
),
Elements( Box Plot( X, Y, Legend( 11 ) ) ),
Local Data Filter(
Add Filter(
columns( :Type),
Display( :Type, Size( 160, 30 ), List Display )
) ),
if(contains(title,"error"),
SendToReport(
Dispatch(
{},
title,
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 10 ), Min( 0.00001 ), Max( 0.03 ),
Inc( 1 ), Minor Ticks( 1 )}
)
) , ) );
return(gb);
);Re : SendToReport 기능을위한 그래프 빌더 내의 If 문다른 토론에서 언급했듯이 Send To Report ()는 JMP가 스크립트를 저장하고 수행 한 모든 사용자 정의를 캡처 할 수 있도록하기위한 것입니다. 스크립트를 작성할 때 창을 사용자 정의하는 더 좋은 방법이 있습니다. 예를 들어
gb = dt << Graph Builder( /* usual plot arguments */ );
If( error plot,
Report( gb )[AxisBox(1)] << Min( 0 ) << Max( 10 ) << Inc( 1 );
);
기본 사용자 정의를 사용하여 Graph Builder를 시작합니다 (오류를 표시하지 않음). 예외 플래그를 지정하는 방법 (플로팅 오류)을 사용하고 If () 함수를 사용하여 메시지를 객체로 보낼지 여부를 결정합니다. 위의 예에서 error plot 인수는 플래그 (부울 변수)이거나 오류를 플로팅 할 때 true를 반환하는 식일 수 있습니다. 이 경우 스케일을 변경하기 위해 메시지가 세로 축으로 전송됩니다. 이 그림을 사용하여 원하는 사용자 정의를 빌드 할 수 있습니다.
Re : SendToReport 기능을위한 그래프 빌더 내의 If 문이를 수행하는 가장 쉬운 방법은 메시지를 Graph Builder에서 생성 한 표시 객체로 전달하는 것입니다. 그래프가 생성 된 후 메시지를 전달할 수 있습니다. 이러한 모든 메시지는 스크립팅 색인에 설명되어 있습니다.
도움말 ==> 스크립트 색인
그런 다음 AxisBox 객체를 찾습니다
다음은 작동 해야하는 코드 수정입니다.
graph_func = Function( {stackdt, title},
{Default Local},
gb = Graph Builder(
Size( 1342, 905 ),
Variables( X( :names ), Y( As Column( title ) ), Group X( :Type ), Overlay( :GROUPs ) ),
Elements( Box Plot( X, Y, Legend( 11 ) ) ),
Local Data Filter( Add Filter( columns( :Type ), Display( :Type, Size( 160, 30 ), List Display ) ) )
);
If( Contains( title, "error" ),
report(gb)[AxisBox(2)] << min(0.00001) << Max( 0.03 ) << Inc( 1 ) <<MINOR ticks=""></MINOR>Re : SendToReport 기능을위한 그래프 빌더 내의 If 문답장을 보내 주셔서 감사합니다. 내가하고있는 일이 간단 해 보였으므로 두 번째 솔루션을 시도했습니다. 그것은 작동하지만 Y 축에는 현재 2 점 만 있습니다. 즉, 최소 및 최대. Yaxis에 스케일을 표시하려면 어떻게합니까?Re : SendToReport 기능을위한 그래프 빌더 내의 If 문JSL과 디스플레이 출력 이미지를 제공해 주시겠습니까?
Re : SendToReport 기능을위한 그래프 빌더 내의 If 문
회사의 개인 정보 보호 정책으로 인해 JSL 또는 전체 그래프를 실제로 제공 할 수는 없지만 X 축 모양은 다음과 같습니다. 그룹 Y 축에는 3 개의 그룹이 있고 Y 축에는 오류가 있습니다. 나는 y와 같은 모든 중간 지점을 볼 수 있기를 원합니다.
또한 페이지에 따라 다른 그룹을 분할하면 첫 번째 그래프에만 적용되며 후속 그래프에는 적용되지 않습니다.