プロセス能力の分布グラフがスクリプトで機能しないこんにちは、
この生成されたスクリプトを多数の列で使用したいと思います。
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :"VDD_ILIMIT"n ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( LSL( . ), Target( . ), USL( 0.5 ), Show as Graph Reference Lines )
),
SendToReport( Dispatch( {"VDD_ILIMIT"}, "1", ScaleBox, {Add Ref Line( 0.5, "Solid", "Blue", "USL", 1 )} ) )
);このスクリプトを使用すると、すべてがうまく機能し、同じウィンドウにプロセス能力プロットを含む分布グラフが表示されます。
複数の列で実行しようとすると、プロセス能力プロットとデータは表示されず、各列の分布グラフのみが表示されます。
// Open the data table
dt = Current Data Table();
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
If( Contains( Column( colnames[i] ) << Get Name, "ILIMIT" ),
// Create a distribution graph for the column
meanValue = Col Mean( colnames[i] );
stdDevValue = Col Std Dev( colnames[i] );
ppkValue = 2;
uslValue = meanValue + ppkValue * 3 * stdDevValue;
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( colnames[i] ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( LSL( . ), Target( . ), USL( uslValue ), Show as Graph Reference Lines )
),
SendToReport( Dispatch( {colnames[i]}, "1", ScaleBox, {Add Ref Line( uslValue, "Solid", "Blue", "USL", 1 )} ) )
);
)
);何が間違っているのでしょうか、なぜこのように動作するのでしょうか?
自動化とスクリプトRe: プロセス能力の分布グラフがスクリプトで機能しない以下は、あなたのコードを修正したもので、うまくいくはずです。
// Open the data table
dt = Current Data Table();
colnames = dt << get column names( numeric, string );
i = 2;
For( i = 1, i <= N Items( colnames ), i++,
//If( Contains( Column( colnames[i] ) << Get Name, "eight" ),
If( Contains( colnames[i], "ILIMIT" ),
// Create a distribution graph for the column
//meanValue = Col Mean( colnames[i] );
meanValue = Col Mean( Column( dt, colnames[i] ) );
//stdDevValue = Col Std Dev( colnames[i] );
stdDevValue = Col Std Dev( Column( dt, colnames[i] ) );
ppkValue = 2; // ???
uslValue = .5; // this value is used below, but was not assigned
Eval(
Eval Expr( // JMP does not evaluate items in a list as parsing
// therefore it has to be preprocessed
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( colnames[i] ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( LSL( . ), Target( . ), USL( Expr( uslValue ) ), Show as Graph Reference Lines )
),
SendToReport(
Dispatch( {Expr( colnames[i] )}, "1", ScaleBox, {Add Ref Line( Expr( uslValue ), "Solid", "Blue", "USL", 1 )} )
)
)
)
);
)
);Re: プロセス能力の分布グラフがスクリプトで機能しないJMP は参照線を正しく追加できません (上限値がないようです)。以下は、いくつかのアイデアを与える例です。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Open the data table
colnames = dt << get column names(numeric, continuous, string);
dists = {};
For Each({colname}, colnames,
meanValue = Col Mean(Column(dt, colname));
stdDevValue = Col Std Dev(Column(dt, colname));
ppkValue = 2;
uslValue = 3*stddevValue + meanValue;
dist = Eval(EvalExpr(dt << Distribution(
Stack(1),
Continuous Distribution(
Column(Eval(colname)),
Horizontal Layout(1),
Vertical(0),
Outlier Box Plot(0),
Process Capability(
LSL(.),
Target(.),
USL(Expr(uslValue)),
Show as Graph Reference Lines
)
),
SendToReport(
Dispatch(
{colnames[i]},
"1",
ScaleBox,
{Add Ref Line(Expr(uslValue), "Solid", "Blue", "USL", 1)}
)
)
)));
Insert Into(dists, dist);
);