過程能力的分佈圖在腳本中不起作用你好,
我想在許多列上使用這個生成的腳本:
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 )} ) )
);
)
);我做錯了什麼,為什麼會這樣?
自動化和腳本編寫回覆:過程能力的分佈圖在腳本中不起作用以下是對您的程式碼的修改,應該適合您
// 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 )} )
)
)
)
);
)
);回覆:過程能力的分佈圖在腳本中不起作用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);
);