将参考线添加到列组中的多个变异性图表我有许多列的规格限制保存到列属性中。我正在尝试将参考线添加到列组中的多个变异性图表中。我的问题是,如果不循环并创建 400 多个变异性图表实例并手动添加它们,我似乎无法添加这些行。这会导致使用大量内存,并且会减慢速度,甚至导致 JMP 崩溃。我要添加的第一条参考线后面可以跟有这段代码。这里索引 i 指的是我循环遍历的列组中的特定列:
report(gb)[axis box( 1 )] << Add Ref Line(
{Num(
Substr(
Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[1] ),
5,
Length( Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[1] ) ) - 5
)
), Num(
Substr(
Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[2] ),
5,
Length( Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[2] ) ) - 5
)
)},
"Solid",
"Light Green",
"",
1,
0.25
);
下面是我希望如何实现此代码,这样我就不会为每个规格创建变异性图表的新实例。我只是不知道如何将自定义参考线添加到下面的代码中。基本上,我想首先添加一个参考线范围,以浅绿色突出显示每个规格的 LSL 和 USL 之间的参考线范围。
open("$SAMPLE_DATA/Semiconductor Capability.jmp");
DT = Current Data Table();
DT << Manage Limits(
Process Variables(
DT << Get Column Group ("Processes")
),
<< Show Limits All,
<< Save to Column Properties,
close window
);
SpecVarCharts = Variability Chart( Y( Column Group( "Processes" ) ), X( :Wafer, :Site ),Connect Cell Means( 1 ), Std Dev Chart(0));
任何帮助将不胜感激。
视窗回复:向列组中的多个变异性图表添加参考线获取对变异性图表中轮廓框的引用,并在设置参考线时循环遍历这些框
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp"); // column properties are already set
varchart = dt << Variability Chart(
Y(Column Group("Processes")),
X(:Wafer, :Site),
Connect Cell Means(1),
Std Dev Chart(0),
invisible
);
obs = varchart << XPath("//OutlineBox[contains(text(), 'Variability Chart for')]");
For Each({ob}, obs,
colname = Substitute(ob << get title, "Variability Chart for ", "");
specs = Column(dt, colname) << Get Property("Spec Limits");
low = specs["LSL"] - 5;
high = specs["USL"] + 5;
ob[AxisBox(1)] << Add Ref Line(low, "Solid", "Light Green", "", 1, 0.25);
ob[AxisBox(1)] << Add Ref Line(high, "Solid", "Light Green", "", 1, 0.25);
);
varchart << Show Window(1);