脚本中过程能力的分布图不起作用你好,
我想在多个列上使用这个生成的脚本:
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);
);