幫助提取動態軸限制設定的數據你好,
我試圖根據目前繪製的數據確定圖表上的軸限制,以便所有參考線和數據點在用戶輸入後都可見。
設定的軸限制可以是 USL / LSL 參考線的值,也可以是繪製的最高/最低資料點。 變異圖表中使用的圖表和資料是按第 1 列分組的第 2 列中的值。
最初,我認為可以透過確定兩個值的最小值/最大值來實現此目的,其中對資料的引用由帶有
Var1_Min = Eval( Min((LSL[1]*0.95), Col Minimum( :Column 2, :Column 1["Group1"] )));
我花了很多時間搜索,但似乎找不到一個可以滿足我需要的函數 - 有什麼IDE嗎?
品質和工藝工程回覆:幫助提取動態軸限制設定的數據感謝您的回覆吉姆!
不幸的是,我的列沒有單一的規格限制,因為基於另一列的值之間存在區別,因此我還沒有找到一種方法來執行傳統的列規格限制,而無需將資料完全拆分為兩個表。
我最終能夠透過使用 Get RowsWhere 找到問題的解決方案:
<BR />dt = Current Data Table();
G1 = dt << Get Rows Where (:Column 1 == "Group1");
G1_Min = Eval( Min((LSL[1]*0.95), Min(:Column 2[G1])));
G1_Max = Eval( Max((USL[1]*1.05), Max(:Column 2[G1])));<BR />dt << clear select;
<BR />dt = Current Data Table();
G2 = dt << Get Rows Where (:Column 1 == "Group2");
G2_Min = Eval( Min((LSL[2]*0.95), Min(:Column 2[G2])));
G2_Max = Eval( Max((USL[2]*1.05), Max(:Column 2[G2])));<BR />dt << clear select;
然後在調度部分繪製圖表(對於第一個圖表,第二個圖表與 1->2 重複):
Dispatch ({Min(G1_Min), Max(G1_Max), Inc( Eval((G1_Max - G1_Min) / 7))),
Add Ref Line( LSL[1], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( USL[1], "Solid", "Medium Dark Blue", "USL", 1 )}* 請注意,我忘記在原來的問題中提及 USL/LSL 已在列表中定義並用於參考線。
回覆:幫助提取動態軸限制設定的數據如果您將規格限值儲存為列屬性,並指示“顯示限值”,圖形產生器將自動擴展軸範圍以包含 USL 和 LSL。

但是,您可以輕鬆覆蓋軸值,如下所示,其中最大 X 軸值變更為 USL 加上 USL-LSL 範圍的 10%

這是簡單的腳本
names default to here(1);
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "\Example.jmp" );
// Change column property: NPN1
Data Table( "Example" ):NPN1 << Set Property(
"Spec Limits",
{LSL( 104.41 ), USL( 131.89 ), Target( 118.15 ), Show Limits( 1 )}
);
// Change column property: NPN2
Data Table( "Example" ):NPN2 << Set Property(
"Spec Limits",
{LSL( 96.59 ), USL( 130.9 ), Target( 113.75 ), Show Limits( 1 )}
);
// Report snapshot: semiconductor capability - Graph Builder
gb = Data Table( "Example" ) <<
Graph Builder(
Variables( X( :NPN2 ), Y( :NPN1 ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
// Set Maximum Y axis value to be displayed
specs = dt:NPN1 << get property( "Spec Limits" );
maxY = Max( Col Maximum( :NPN1 ), specs["USL"] + .1 * (specs["USL"] - specs["LSL"]) );
Report( gb )[AxisBox( 2 )] << Max( maxY );