"페이지" 레이아웃 기능을 사용하고 Y축을 독립적으로 유지할 때 Graph Builder에서 Y축 선을 브로드캐스팅하기 위한 스크립트에 대한 도움이 필요합니다.안녕하세요 여러분,
Graph Builder에서 패널을 쌓을 수 있는 새로운 기능이 놀랍지만, 이 놀라운 기능의 핵심은 Y축을 서로 독립적으로 유지하는 것입니다. 그러나 패널(레벨)이 많고 Y축 그리드 선을 추가하려면 하나씩 해야 하는데, 이는 끔찍합니다. 각 패널을 인덱싱하고 그리드 선을 독립적으로 추가할 수 있는 스크립트에 대한 아이디어가 있습니까?
여기서 저는 (큰 클래스 데이터 세트에서) 축 설정을 복사하고 붙여넣는 오래된 방법을 사용했고 격자선을 추가하지만 모든 Y축 범위를 복사된 패널 설정과 동일하게 설정한다는 것을 볼 수 있습니다.

어떤 아이디어라도 감사합니다!
스티브
자동화 및 스크립팅데이터 탐색 및 시각화Re: "페이지" 레이아웃 기능을 사용하고 Y축을 독립적으로 유지할 때 Graph Builder에서 Y축 선을 브로드캐스팅하기 위한 스크립트에 대한 도움이 필요합니다.XPath를 사용하여 관심 있는 Axisboxes(X, Y축 또는 둘 다)에 대한 참조를 가져온 다음 해당 axisboxes 목록에서 원하는 작업을 수행합니다. 이 예에서는 모든 프레임박스에서 Y축에 대한 Major Grid를 활성화합니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(893, 542),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Page(:age, Levels per Row(3)), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)))
);
abs = Report(gb) << XPath("//AxisBox");
yaxis = abs[2::NItems(abs)::2];
yaxis << Show Major Grid(1);

Re: "페이지" 레이아웃 기능을 사용하고 Y축을 독립적으로 유지할 때 Graph Builder에서 Y축 선을 브로드캐스팅하기 위한 스크립트에 대한 도움이 필요합니다.빠르네요, Jarmo! 저는 당신의 해결책이 더 마음에 들지만, Eval(Parse())를 사용하는 또 다른 방법이 있습니다.
Names Default To Here( 1 );
//Manually add your reference line to the top left panel of the graph builder.
//Then run this script with the graph builder report in focus.
axisList = Current Report() << XPath( "//AxisBox" );
//Grab axis specifications from vertical axis of first panel
//(vertical axes are even-numbered items; horizontal axes are odd)
axspecList = axisList[2] << Get Script();
//find the Reference Line among the other specifications
For( i = 1, i <= N Items( axspecList ), i++,
If( Left( Char( axspecList[i] ), 12 ) == "Add Ref Line",
rlindex = i;
Break();
)
);
//Reference Line specification as string
rlstr = Char( axspecList[rlindex] );
//Apply Reference Line specification to the remaining panels
For( j = 4, j <= N Items( axisList ), j = j + 2,
estr = "axisList[" || Char( j ) || "] <<" || rlstr;
Eval( Parse( estr ) );
);