잠긴 열이 스크립트를 엉망으로 만들고 있습니다.저는 Outlier Box 플롯을 가르치고 수염이 계산되는 방법을 수업에 시각적으로 보여줄 수 있도록 수염의 전체 길이를 추가하는 스크립트를 작성했습니다. 내 열이 잠겨 있지 않으면 스크립트는 훌륭하게 작동합니다. 열을 잠그면 내 스크립트에 영향을 미치는 이유는 무엇입니까? 스크립트가 실행된 후 스크립트 창에 스크립트를 저장했는데 정확하지만 일부 그룹에서는 수염이 그려지지 않습니다. 제 스크립트는 다음과 같습니다. 아직 작업 중입니다. MacBook에서 JMP Pro 17.0.0을 사용하고 있습니다.
Names Default To Here( 0 );
Clear Log();
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
// Check that there is a data set open;
// ca=Caption("Please Open Design Data Set", Back Color(yellow));
// Stop();
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
output = Expr(
dt2 = Data Table( dt ) << Summary(
Group( bycol ),
Median( nm ),
Interquartile Range( nm ),
Quantiles( 25, nm ),
Quantiles( 75, nm ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
columnnamemedian = Column( dt2, 3 ) << Get Name;
columnnamesample = Column( dt2, 2 ) << Get Name;
columnnamegroup = Column( dt2, 1 ) << Get Name;
columnameIQR = Column( dt2, 4 ) << Get Name;
columnname25 = Column( dt2, 5 ) << Get Name;
columnname75 = Column( dt2, 6 ) << Get Name;
Medians = Column( dt2, columnnamemedian ) << Get As Matrix;
Samplesize = Column( dt2, columnnamesample ) << Get As Matrix;
Groups = Column( dt2, columnnamegroup ) << Get As Matrix;
IQR = Column( dt2, columnameIQR ) << Get As Matrix;
Q25 = Column( dt2, columnname25 ) << Get As Matrix;
Q75 = Column( dt2, columnname75 ) << Get As Matrix;
meanno = N Rows( dt2 );
LWhis = {};
UWhis = {};
i = 1;
For( i = 1, i <= meanno, i++,
LWhis[i] = Q25[i] - 1.5 * IQR[i];
UWhis[i] = Q75[i] + 1.5 * IQR[i];
Show( Q25[i] );
Show( Q75[i] );
Show( LWhis[i] );
Show( UWhis[i] );
Show( IQR[i] );
Show( i );
If( LWhis[i] > Q25[i],
LWhis[i] = Q25[i],
LWhis[i] = LWhis[i]
);
If( UWhis[i] < Q75[i],
UWhis[i] = Q75[i],
UWhis[i] = UWhis[i]
);
);
MinLW = LWhis[1];
MaxUW = UWhis[1];
i = 1;
For( i = 1, i <= meanno, i++,
If( LWhis[i] < MinLW,
MinLW = LWhis[i],
MinLW = MinLW
);
If( UWhis[i] > MaxUW,
MaxUW = UWhis[i],
MaxUW = MaxUW
);
);
If( MinLW < 0,
MinLW = MinLW * 1.1,
MinLW = MinLW * 0.9
);
If( MaxUW < 0,
MaxUW = MaxUW * 0.9,
MaxUW = MaxUW * 1.1
);
Current Data Table( dt );
//Close(dt2, NoSave);
gb = Graph Builder(
Variables( X( (Column( bycol )) ), Y( Column( nm ) ) ),
Elements( Points( X, Y ), Box Plot( X, Y ) ),
SendToReport(
Dispatch( {} ),
),
);
gbr = gb << report;
Report( gb )[AxisBox( 2 )] << Max( MaxUW ) << Min( MinLW );
i = 1;
For( i = 1, i <= meanno, i++,
Show( LWhis[i] );
Show( UWhis[i] );
Eval(
Eval Expr(
gbr[Framebox( 1 )] << Add graphics Script(
Pen Color( Red );
Line Style( "Dotted" );
V Line( Expr( i ), Expr( LWhis[i] ), Expr( Q25[i] ) );
V Line( Expr( i ), Expr( Q75[i] ), Expr( UWhis[i] ) );
);
)
)
;
);
//dt2 << Minimize Window;
Close( dt2, Nosave );
);
w = New Window( "Variables",
<<MODAL></MODAL>맥 OSRe: 잠긴 열로 인해 스크립트가 엉망이 되었습니다.몇 가지 예를 들어주실 수 있나요? 문제가 발생하는 이미지 또는 데이터세트 잠긴 열이 그래픽 스크립트에 영향을 미치는 이유는 확실하지 않지만 1 대신 0에서 시작하도록 줄의 "인덱스"를 수정해야 할 수도 있습니다.
(1과 2)

(0과 1)

Re: 잠긴 열로 인해 스크립트가 엉망이 되었습니다.
첫 번째에는 선이 그려져 있지 않지만 이 스크립트를 보면 선이 그려져 있어야 한다는 것을 알 수 있습니다. 숫자 7은 간격이고 3은 틀렸습니다. 여기에 정확한 플롯에 대한 스크립트가 있습니다. 빨간색 선이 그려진 것과 일치하지 않는 것을 확인하세요. 이 작업에 사용한 JMP 파일을 첨부했습니다.:
Graph Builder(
Variables( X( :Process Configuration ), Y( :Y ) ),
Elements( Points( X, Y, Legend( 1 ) ), Box Plot( X, Y, Legend( 2 ) ) ),
SendToReport(
Dispatch(
{},
"Y",
ScaleBox,
{Min( 6.36165 ), Max( 36.07175 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
13,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 1, 13.039, 18.502 );
V Line( 1, 22.144, 27.607 );
), Add Graphics Script(
14,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 2, 7.0685, 16.061 );
V Line( 2, 22.056, 31.0485 );
), Add Graphics Script(
15,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 3, 11.772, 17.973 );
V Line( 3, 22.107, 28.308 );
), Add Graphics Script(
16,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 4, 14.0465, 18.737 );
V Line( 4, 21.864, 26.5545 );
), Add Graphics Script(
17,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 5, 13.529, 18.002 );
V Line( 5, 20.984, 25.457 );
), Add Graphics Script(
18,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 6, 8.0605, 17.335 );
V Line( 6, 23.518, 32.7925 );
), Add Graphics Script(
19,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 7, 16.3455, 19.356 );
V Line( 7, 21.363, 24.3735 );
)}
)
)
);Re: 잠긴 열로 인해 스크립트가 엉망이 되었습니다.잠긴 열이 없는 새 테이블로 보낸 테이블을 복사하면 작동합니다. 줄의 "색인"을 어떻게 수정합니까? 열이 잠긴 다른 파일이 있는데 그 파일도 작동하지 않습니다.
Re: 잠긴 열로 인해 스크립트가 엉망이 되었습니다.선이 하나씩 이동합니다(명목/서수 데이터의 경우 X축이 0부터 시작하는 것 같습니다).


스크립트의 이 부분을 수정할 수 있습니다.
For(i = 1, i <= meanno, i++,
Show(LWhis[i]);
Show(UWhis[i]);
Eval(
Eval Expr(
gbr[Framebox(1)] << Add graphics Script(
Pen Color(Red);
Line Style("Dotted");
V Line(Expr(i), Expr(LWhis[i]), Expr(Q25[i]));
V Line(Expr(i), Expr(Q75[i]), Expr(UWhis[i]));
);
)
);
);
가장 쉬운 방법은 V Line(Expr()) 내부에 i-1을 추가하는 것입니다.
Re: 잠긴 열로 인해 스크립트가 엉망이 되었습니다.나는 명목형 열을 숫자/연속형으로 변경하여 작동하는지 확인하려고 시도했지만 작동하지 않았습니다. 작동할 수 있는 유일한 방법은 그것을 다른 테이블에 복사하는 것이므로 잠긴 열이라고 가정한 것입니다. 왜 작동하지 않았는지 잘 모르겠지만, 모델링 유형이 명목형인지 연속형인지 확인하기 위해 if 문을 추가하고 제안 사항을 추가하면 작동했습니다. 그래서 여전히 혼란스럽긴 하지만 작동하게 되었습니다. 감사합니다! 나는 그것을 숫자/연속으로 변환하려고 시도했지만 작동하지 않았기 때문에 그것을 알아내지 못했을 것이라고 생각합니다.