使用过程筛选,我很快就得到了过程性能图,给出了稳定/不稳定的2x2矩阵以及符合/不符合标准,以便将注意力集中在改进工作上。这非常有用。
附上一个例子。
由于附加的12个特征具有不同数量的数据,我看到默认创建的控制图总是具有x轴,其运行到表中行数的长度。
在附上例如 特征七有583个数据,但特征九只有79个数据。
特征九的控制图的创建具有x轴,默认情况下会收敛583数据。这个演示文稿并不理想,因为我做的第一件事就是改变x轴,但是对于许多图表来说这样做是非常耗时的。
任何人都可以建议我如何使用脚本或其他选项来自动配置x轴以反映每列中每个特征背后的数据实际数量?很高兴知道如何做到这一点,因此为了更深入地了解数据而创建的图片尽可能快地提供信息。
我刚检查过,问题也适用于控制图生成器,即对列执行哪个操作,以便每个x轴缩放到具有实际数据的行数。
你好,
我想我会发布这个以防有人发现它有用。 实现此目的的另一种可能方法是创建一个新的数据表,其中堆叠的进程和从堆栈表中删除的缺失值。 然后,您可以使用“流程筛选”中的“分组”列将表拆分为单独的流程。 (注意,如果要进行功能计算,还必须创建规范限制表才能使用此方法,因为列属性将在堆栈表中消失。)以下JSL演示了如何执行此操作:
dt = Data Table("Process Screening Example");
dtStack = dt << Stack(
columns(
:Characteristic One,
:Characteristic Two,
:Characteristic Three,
:Characteristic Four,
:Characteristic Five,
:Characteristic Six,
:Characteristic Seven,
:Characteristic Eight,
:Characteristic Nine,
:Characteristic Ten,
:Characteristic Eleven,
:Characteristic Twelve
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output Table( "Stacked Process Screening Example" )
);
dtStack << select where (isMissing(:Data));
dtStack << delete rows;
obj = dt<< Manage Spec Limits(
Y(
:Characteristic One,
:Characteristic Two,
:Characteristic Three,
:Characteristic Four,
:Characteristic Five,
:Characteristic Six,
:Characteristic Seven,
:Characteristic Eight,
:Characteristic Nine,
:Characteristic Ten,
:Characteristic Eleven,
:Characteristic Twelve
)
);
dtLimits = obj << Save to Tall Spec Limits Table;
obj2 = dtStack << Process Screening(
Y( :Data ),
Grouping( :Label ),
Control Chart Type( "Indiv and MR" ),
Use Limits Table(
1,
dtLimits,
Grouping( :Variable ),
LSL( :LSL ),
USL( :USL ),
Target( :Target ),
Go
)
);
obj2 << select all;
obj2 << control charts for selected items;
如果您只想在不先启动Process Screening的情况下使用Control Chart Builder执行相同操作,则可以使用以下JSL:
dt = Data Table("Process Screening Example");
dtStack = dt << Stack(
columns(
:Characteristic One,
:Characteristic Two,
:Characteristic Three,
:Characteristic Four,
:Characteristic Five,
:Characteristic Six,
:Characteristic Seven,
:Characteristic Eight,
:Characteristic Nine,
:Characteristic Ten,
:Characteristic Eleven,
:Characteristic Twelve
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output Table( "Stacked Process Screening Example" )
);
dtStack << select where (isMissing(:Data));
dtStack << delete rows;
obj = dtStack << Control Chart Builder( Variables( Y( :Data )), By( :Label ) );
我不知道可以修复此问题的列属性,但可以使用JSL完成。
这是一个示例脚本,它循环遍历每个控制图并使x轴适应观察的数量。
dt = Data Table("Process Screening Example");
dt << Process Screening(
Y(
:Characteristic One,
:Characteristic Two,
:Characteristic Three,
:Characteristic Four,
:Characteristic Five,
:Characteristic Six,
:Characteristic Seven,
:Characteristic Eight,
:Characteristic Nine,
:Characteristic Ten,
:Characteristic Eleven,
:Characteristic Twelve
),
Control Chart Type("Indiv and MR"),
Process Performance Graph(1),
Test 2(1),
Ppk Capability Boundary(1),
Stability Ratio Boundary(1.2),
Select All,
Control Charts for Selected Items,
SendToReport(Dispatch({"Process Performance Graph"}, "ProcessScreening Graph", FrameBox, {Frame Size(553, 424)}))
);
//get list of Control Chart top Outline Boxes
obs = Current Report() << topparent << xpath("//ListBox/OutlineBox");
// Set x-axis max after each N (retrieved from the "Porcess Summary" boxes)
For(i = 1, i <= N Items(obs), i++,
psum = obs[i][Outline Box("Process Summary")];
nloc = Loc((psum << xpath("//StringColBox"))[1] << get, "N")[1]; // locate row of "N"
n = (psum << xpath("//NumberColBox"))[1][nloc]; // get "N"
(obs[i] << xpath("//AxisBox"))[1] << Max(n + 0.5); // set max
);