모두들 안녕,
평행 플롯을 수행하고 변수를 사용하여 선을 채색합니다. 예를 들어 Big Class 테이블과 함께 다음 스크립트를 사용합니다.
obj = Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
그런 다음 선의 너비를 수정하고 싶습니다. 나는 이것을 실행하려고했다.
frame = Report( obj )[FrameBox(1 )];
seg = frame << Find Seg( "Polyline Seg" );
seg << Set Line Width(3);
하지만 내 Color 변수의 첫 번째 수준 (이 예에서는 연령)과 관련된 선만 수정했습니다.
모든 라인을 동시에 수정하려면 어떻게해야합니까? 그래프를 생성 할 때 Dispatch 기능을 사용해야합니까? 그러나 Color 변수의 수준 수를 미리 알지 못하기 때문에 처리 방법을 실제로 모릅니다.
도움에 미리 감사드립니다!
코드가 의도 한대로 작동하지 않는 이유가 확실하지 않습니다. 그것은 나를 위해 작동합니다 (Mac의 경우 JMP 15).
대안은 Xpath를 사용하는 것입니다.
(obj << xpath( "//PolylineSeg" )) << Set Line Width( 3 );
안녕 앤,
내가 수행 한 몇 가지 실험을 기반으로 먼저 GB 플롯 라인 자체가 아닌 범례에 문제가 있는지 확인하고 싶습니다. 이 경우 사용자 정의 메뉴에서 선 너비를 수동으로 변경하면 범례도 올바르게 업데이트되지 않습니다. 따라서 이것은 버그 인 것 같습니다.
그러나 범례에서 선 너비를 하나씩 수동으로 변경하면 곡선과 범례가 모두 업데이트됩니다.
해당 코드 (GB 스크립트에서 가져온 하나의 Legend 항목에 대한)는 다음과 같습니다.
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (2, {Line Width (3)}, Itemd ID ("14", 1) ) )}));
그래서 Legend 항목 (예 : 연령)을 반복하기 위해 다음과 같은 "추악한"코드를 생각해 냈습니다.
Names Default to Here (1);
dt = current data table ();
dts = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
invisible
);
dlist = Column (dts, "age") << get values;
Close (dts, NoSave);
show (dlist);
obj = dt << Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
objr = obj << report;
//frame = objr [FrameBox(1 )]; NO LONGER NEEDED
//seg = frame << Find Seg( "Polyline Seg" ); NO LONGER NEEDED
//seg << Set Line Width(6); NO LONGER NEEDED
For (i = 0, i < N Items (dlist), i++,
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (i, {Line Width (12)}, Itemd ID (dlist [i], 1) ) )}))
);
감사 @ms 과 헉헉 당신의 대답을 위해!
내 목표는 실제로 범례뿐만 아니라 그래프의 선 너비를 변경하는 것입니다.
나는 해결책을 선택한다 @ms 조금 짧지 만 둘 다 매력처럼 작동합니다!:)