將參考線新增至列組中的多個變異性圖表我有許多列的規格限制保存到列屬性中。我正在嘗試將參考線添加到列組中的多個變異性圖表中。我的問題是,如果不循環並創建 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);