やあ、
複数の軸ボックスに参照線を追加し、スライダー ボックスで参照線を変更したい。ループを使用できるかどうか疑問に思っていますか?
ここに私のコードがあります: - 各グラフに基準線を追加できましたが、直面する問題は、スライダー ボックスを変更すると、ループ関数が基準線を追加するのに時間がかかり、グリッチが発生することです。 実装する他の代替方法はありますか? アドバイスいただければ幸いです。 ありがとう
以下に両方のデータテーブルを添付しました
dtNames = {};
For( t = 1, t <= N Table(), t++,
Insert Into( dtNames, Data Table( t ) << getName )
);
sliderValue = 1;
dothisonchange = Function( {val},
tb << Set Text( "Cpk : " || Substr( Char( val ), 1, 4 ) )
);<BR />//// Select Measurement data table
nw = New Window( "Select Data Table",
modal,
Panel Box( "Pick a table", dtlb = List Box( dtNames, MaxItems( 1 ) ) ),
Button Box( "OK",
dtl = dtlb << getSelected;
dt = Data Table( dtl[1] );
dt2 = Data Table( "Limits table" );
col = dt2:Analysis Columns << get values;
colist = {};
dt3 = dt2;
cpktab = Data Table( "Limits table" );
Try(
cpktab << delete columns( "LSL" );
cpktab << delete columns( "USL" );
cpktab << Delete Table Variable( "cpk" );
);
cpktab << New Table Variable( "cpk", 1.33 );
cpktab << New Column( "LSL", "Numberic", "Continous", Format( "Best", 12, 2 ), Formula( :Mean - cpk * 3 * :Std Dev ) );
cpktab << New Column( "USL", "Numberic", "Continous", Format( "Best", 12, 2 ), Formula( :Mean + cpk * 3 * :Std Dev ) );
Caption( "Processing...Please Wait" );
Wait( 0 );
New Window( "",
H List Box(
V List Box(
Spacer Box( size( 10, 10 ) ),
Panel Box( "",
Spacer Box( size( 0, 30 ) ),
tb = Text Box( "Cpk: " || Char( sliderValue ), <<SET font="" style=""></SET>//////////////////////////////////// This function lags////////////////////////////////////
For( i = 1, i <= N Items( col ), i++,
If( Contains( lsl, col[i] ),
Report( vc2[i] )[AxisBox( 1 )] << remove ref line( lsl[col[i]] );
Report( vc2[i] )[AxisBox( 1 )] << remove ref line( usl[col[i]] );
Report( vc2[i] )[AxisBox( 1 )] << {Add Ref Line(
lsl[col[i]], "Solid", "Red", "LSL=" || Substr( Char( lsl[col[i]] ), 1, 5 ), 2
)};
Report( vc2[i] )[AxisBox( 1 )] << {Add Ref Line(
usl[col[i]], "Solid", "Red", "New USL=" || Substr( Char( usl[col[i]] ), 1, 5 ), 2
)};
)
);
)
)
)
)
),
vc2 = dt << Variability Chart(
Y( Eval( col ) ),
X( :site ),
Show Range Bars( 0 ),
Show Grand Mean( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
SendToReport(
Dispatch(
{""},
"Variability Chart",
FrameBox,
{Frame Size( 846, 318 ), Row Legend(
Split,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
aa_refs = Associative Array( dt3:Analysis Columns << get values, dt3:LL << get values );
aa_refs1 = Associative Array( dt3:Analysis Columns << get values, dt3:UL << get values );
For( i = 1, i <= N Items( col ), i++,
If( Contains( aa_refs, col[i] ),
Report( vc2[i] )[Framebox( 1 )] << DispatchSeg( CustomStreamSeg( 3 ), {Line Width( 2 )} );
Report( vc2[i] )[AxisBox( 1 )] << {Add Ref Line(
aa_refs[col[i]], "Solid", "Dark Green", "New LL=" || Substr( Char( aa_refs[col[i]] ), 1, 5 ), 2
)};
Report( vc2[i] )[AxisBox( 1 )] << {Add Ref Line(
aa_refs1[col[i]], "Solid", "Dark Green", "New UL=" || Substr( Char( aa_refs1[col[i]] ), 1, 5 ), 2
)};
)
);
Try( vcidd = vc2 << report );
For( i = 1, i <= N Items( col ), i++,
If( Contains( aa_refs, col[i] ),
vcidd[i][AxisBox( 1 )] << Min( aa_refs[col[i]] - 1 ) << Max( aa_refs1[col[i]] + 1 )
)
);
Caption( remove );
Wait( 0 );
)
);
)
);