안녕,
목록의 열 값을 기반으로 GB 플롯을 채우는 다음 jsl 스크립트가 있습니다. 문제는 어떤 이유로 플롯의 순서가 올바르지 않다는 것입니다.
예를 들어 목록 1에는 다음 순서로 열이 있습니다.
List1 = {"NPN1", "PNP1", "PNP2", "NPN2", "PNP3", "IVP1"};
루프는 첫 번째 열을 마지막 열로 바꿉니다. 아래를 참조하세요. 해결 방법이 있나요?

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
List1 = {"NPN1", "PNP1", "PNP2", "NPN2", "PNP3", "IVP1"};
List2 = {"PNP4", "NPN3", "IVP2", "NPN4", "SIT1"};
List3 = {"INM1", "INM2", "VPM1", "VPM2", "VPM3"};
List4 = {"SNM1", "SPM1", "NPN5", "EP2", "ZD6"};
var expr1 = Expr( Variables() );
For( c = 1, c <= N Items( List1 ), c++,
x expr1 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr1, List1[c], 1 );
Insert Into( var expr1, Name Expr( x expr1 ) );
);
var expr2 = Expr( Variables() );
For( c = 1, c <= N Items( List2 ), c++,
x expr2 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr2, List2[c], 1 );
Insert Into( var expr2, Name Expr( x expr2 ) );
);
var expr3 = Expr( Variables() );
For( c = 1, c <= N Items( List3 ), c++,
x expr3 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr3, List3[c], 1 );
Insert Into( var expr3, Name Expr( x expr3 ) );
);
var expr4 = Expr( Variables() );
For( c = 1, c <= N Items( List4 ), c++,
x expr4 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr4, List4[c], 1 );
Insert Into( var expr4, Name Expr( x expr4 ) );
);
lists = {"List1", "List2", "List3", "List4"};
var = {};
gbv = {};
For( i = 1, i <= 4, i++,
Insert Into( var, Name Expr( Eval( Parse( "var expr" || Char( i ) ) ) ) );
Insert Into( gbv, Parse( "vvv" || Char( i ) ) );
);
nw = New Window( "Plots", Show Menu( 0 ), show toolbars( 0 ), tb = Tab Box() );
For( i = 1, i <= N Items( lists ), i++,
tb << Add(
lists[i],
V List Box(
H List Box(
Eval(
Eval Expr(
gb= dt << Graph Builder(
Size( 1117, 781 ),
Show Control Panel( 0 ),
////something is not correct here?????
Expr( Name Expr( var[i] ) ),
Elements(
Histogram(
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
X( 8 ),
X( 9 ),
X( 10 ),
X( 11 ),
X( 12 ),
X( 13 ),
X( 14 ),
X( 15 ),
X( 16 ),
X( 1 ),
Legend( 2 ),
),
Box Plot(
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
X( 8 ),
X( 9 ),
X( 10 ),
X( 11 ),
X( 12 ),
X( 13 ),
X( 14 ),
X( 15 ),
X( 16 ),
X( 1 ),
Legend( 3 ),
Outliers( 0 )
)
)
)
)
),
Tabulate(
Show Control Panel( 0 ),
Set Format( Uniform Format( 10, 2 ) ),
Add Table(
Column Table( Statistics( Mean, Std Dev ) ),
Row Table(
Analysis Columns(
Eval( Parse( lists[i] ) )
)
)
)
)
)
)
);
);감사해요,
재키
Graph Builder가 제공하는 스크립트를 살펴보십시오.
Graph Builder(
Size(1117, 781),
Show Control Panel(0),
Variables(
X(:NPN1, Combine("Parallel Merged")),
X(:PNP1, Position(1), Combine("Parallel Merged")),
X(:PNP2, Position(1), Combine("Parallel Merged")),
X(:NPN2, Position(1), Combine("Parallel Merged")),
X(:PNP3, Position(1), Combine("Parallel Merged")),
X(:IVP1, Position(1), Combine("Parallel Merged"))
),
Elements(
Histogram(X(2), X(3), X(4), X(5), X(6), X(1), Legend(2)),
Box Plot(X(2), X(3), X(4), X(5), X(6), X(1), Legend(3), Outliers(0))
),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg(Hist Seg("Histogram (NPN2)"), Bin Span(1500, 240)),
DispatchSeg(Hist Seg("Histogram (PNP3)"), Bin Span(750, 300)),
DispatchSeg(Hist Seg("Histogram (IVP1)"), Bin Span(750, 150)),
DispatchSeg(Hist Seg("Histogram (NPN1)"), Bin Span(240, 24))}
)
)
)
X(1)이 마지막이다. Graph Builder 스크립트와 동일
