안녕하세요,
나는 문제에 봉착했고 몇 가지 조언에 감사할 것입니다.
샘플을 분석하고 각 샘플에 대해 모집단 A, B, C, D 및 E를 얻습니다.
A에 대한 정보는 B,C,D,E와 같이 "%"와 "count"로 나눌 수 있습니다.
데이터를 가져오고 "A 1"에서 "E 1"로 명명된 열은 "%" 값을 나타내고 "A 2"에서 "E 2"로 명명된 열은 "개수" 값을 나타냅니다.
가져오기는 항상 동일하므로 각 모집단 유형(A, B, C 등)에 대해 2개의 Y축("%" 및 "개수")이 있는 그래프를 생성하는 스크립트를 작성하는 것이 관리 가능했습니다. 아래 코드를 참조하십시오.
문제: 때때로 우리는 일부 인구에 대해 추가 정보를 얻습니다. 예를 들어 인구 B와 E만 "형광"이라는 세 번째 정보를 갖게 됩니다. 이들은 동일한 테이블에 "B 3" 및 "E 3" 열로 가져옵니다.
이러한 모집단은 가져올 때마다 다를 수 있으므로 "B 3"을 "B"의 구성원으로 식별하고 모집단 "B" 그래프에 세 번째 Y축을 만드는 스크립트를 작성해야 합니다(및 이 예에서 "E 3"과 동일). 그러나 이것에 대해 나는 충분히 똑똑하거나 경험이 없습니다.
물론 테이블을 재정렬하고 새 열 대신 새 행을 만들고 "래핑" 작업을 시도했습니다. 그러나 각 Y 축에 대한 자동 크기 조정이 없습니다. 또한 세 가지 정보 유형에 대한 연관 배열을 시도했지만 코딩 경험이 부족하여 실패했습니다.
도움이 될 만한 아이디어가 있으신 분도 계실 것입니다. 감사합니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << clear select;
win = New Window( "Test", Outline Box( "", hb = V List Box() ) );
loopstart = Contains(dt << get column names, Column("A 1"));
loopend = (Contains(dt << get column names, Column("A 2")))-1;
icounts = (loopend+1)-loopstart;
For( i = loopstart, i <= loopend, i++,
gb = Graph Builder(
Size( 1500, 900 ),
Show Control Panel( 0 ),
Grid Color( "Black" ),
Graph Spacing( 2 ),
Legend Position( "Bottom" ),
Variables( X( :Group ), Y( Eval( i ) ), Y( Eval( i + icounts ) ), Color( :Subjects ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 11 ) ), Box Plot( X, Y, Legend( 13 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 12 ) ), Box Plot( X, Y, Legend( 14 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "DATA" ), Image Export Display( Normal )} ),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Title" )}, {Set Font Size( 16 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Font Size( 14 ), Set Font Style( "bold" ), Set Text( " [%]" )} ),
Dispatch( {}, "Y1 title", TextEditBox, {Set Font Size( 14 ), Set Font Style( "bold" ), Set Text( " Count" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Font Size( 14 ), Set Font Style( "bold" )} ),
Dispatch(
{},
"400",
LegendBox,
{Set wrap( 12 ), Set Title( "" ), font( "Segoe UI", 12, "Plain" ), Legend Position(
{11, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1], 13, [-1], 12, [-1], 14, [-1]
}
), Orientation( "Vertical" )}
)
)
);
hb << Append( Report( gb ) << child );
hb << append( Page Break Box() );
gb << close window;
);