안녕하세요 JMP 커뮤니티,
현재 개발중인 간단한 스크립트에서 축 스케일 (예 : Polygon ([X1, X1, X2, X2], [Y1, Y2, Y2, Y1]). 다각형에 대한 "하드 코딩 된"숫자 좌표를 사용하여 쉽게이 작업을 수행 할 수 있으며 X1, X2, Y1 및 Y2의 값을 쉽게 동적으로 계산할 수 있습니다. 이 좌표를 동적으로 업데이트하기 위해 스크립트에서 적절한 구문을 결정할 수 없었습니다. 좌표 벡터의 잘못된 처리로 인해 아래 스크립트가 작동하지 않습니다.
Names Default to Here (1);
dt1 = Data Table ("TABLE1.JMP");
dt2 = Data Table ("TABLE2.JMP");
CList = dt1 << get column Names (string);
gbe = Expr (dt1 << Graph Builder(
Size( 838, 494 ),
Variables(
X( :COLUMNX ),
Y( _YS_ ),
Group X( :COLUMNSPLIT )
),
Elements(
Points( X, Y, Legend( 4 ) ),
Line Of Fit( X, Y, Legend( 6 ) ),
Ellipse( X, Y, Legend( 7 ) )
),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Left( 1 ), Right( 1 ), Top( 1 ), Bottom( 1 ),
Add Graphics Script(
2,
Description( "Script" ),
Fill Color( "white" );
Transparency( 0.6 );
Polygon( [-1, -1, 4.5, 4.5], _YVECTOR_ );
Transparency( 1 );
Text Size( 14 );
Text color ("black");
Text( right Justified, {4, _TPY1_}, _R1_ );
Text Color (_TXTC1_);
Text( right Justified, {4, _TPY2_}, _P1_ );
), Grid Line Order( 1 ), Reference Line Order( 3 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 2 ),
{Left( 1 ), Right( 1 ), Top( 1 ), Bottom( 1 ),
Add Graphics Script(
2,
Description( "Script" ),
Fill Color( "white" );
Transparency( 0.6 );
Polygon( [-1, -1, 4.5, 4.5], _YVECTOR_ );
Transparency( 1 );
Text Size( 14 );
Text color ("black");
Text( right Justified, {4, _TPY1_}, _R2_ );
Text Color (_TXTC2_);
Text( right Justified, {4, _TPY2_}, _P2_ );
), Grid Line Order( 1 ), Reference Line Order( 3 )}
)
)
)
);
For (i = 10, i <= 13, i++, //101
YCOL = Column (dt1, i);
if (Column (dt2, 6) [i-9]<= 0.05, TEXTCOL1 = "red", TEXTCOL1 = "black");
if (Column (dt2, 7) [i-9]<= 0.05, TEXTCOL2 = "red", TEXTCOL2 = "black");
PVAL1 = "BH p: "|| CHAR(format(Column (dt2, 6) [i-9],"PValue"));
PVAL2 = "BH p: "|| CHAR(format(Column (dt2, 7) [i-9],"PValue"));
R1 = "r: "|| CHAR(format(Column (dt2, 4) [i-9],"Fixed Dec",6,3));
R2 = "r: "|| CHAR(format(Column (dt2, 5) [i-9],"Fixed Dec",6,3));
gbx = substitute(Name Expr (gbe), Expr (_YS_), YCOL,
Expr (_TPY1_), 1,
Expr (_TPY2_), 0.6,
Expr (__YVECTOR_),[1,0.5,0.5,1],
Expr (_TXTC1_), TEXTCOL1,
Expr (_TXTC2_), TEXTCOL2,
Expr (_P1_), PVAL1,
Expr (_P2_), PVAL2,
Expr (_R1_), R1,
Expr (_R2_), R2
);
gb = Eval (gbx);
gbr = gb << report;
Yaxis = gbr [Axis Box (2)];
YMax = YAxis << Get Max;
YMin = YAxis << Get Min;
gbr << close window;
YRange = ABS (YMax - YMin);
While (YRange <= 2,
YMax = YMax + (YRange * 0.2);
YMin = YMin - (YRange * 0.2);
YRange = abs (YMax - YMin);
);
TOPY1 = YMax - (YRange * 0.05);
TOPY2 = YMax - (YRange * 0.10);
POLY1 = YMax;
POLY2 = YMax - (YRange * 0.15);
POLYVECT = eval list ([POLY1, POLY2, POLY2, POLY1];
gbx = substitute(Name Expr (gbe), Expr (_YS_), YCOL,
Expr (_TPY1_), TOPY1,
Expr (_TPY2_), TOPY2,
Expr (_YVECTOR_), POLYVECT,
Expr (_TXTC1_), TEXTCOL1,
Expr (_TXTC2_), TEXTCOL2,
Expr (_P1_), PVAL1,
Expr (_P2_), PVAL2,
Expr (_R1_), R1,
Expr (_R2_), R2
);
gb = Eval (gbx);
gbr = gb << report;
Yaxis = gbr [Axis Box (2)];
Yaxis << Max (YMax);
Yaxis << Min (YMin);
Yaxis << Inc (round (YRange/9, 1));
gbr << Set Title (CList [i]);
gbr << Journal;
gbr << close window;
);
도와 주셔서 감사합니다.
베스트,
TS