모두들 안녕,
저는 평행 플롯을 작성하고 변수를 사용하여 선의 색상을 지정합니다. 예를 들어 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);
하지만 색상 변수의 첫 번째 수준(이 예에서는 나이)과 관련된 선만 수정되었습니다.
모든 줄을 동시에 수정하려면 어떻게 해야 합니까? 그래프를 생성할 때 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 및 @Thierry_S 에게 감사드립니다!
내 목표는 실제로 범례뿐만 아니라 그래프의 선 너비를 변경하는 것입니다.
조금 더 짧기 때문에 @ms 솔루션을 선택했지만 둘 다 매력적으로 작동합니다!:)