帮助提取动态轴限制设置的数据你好,
我试图根据当前绘制的数据确定图表上的轴限制,以便所有参考线和数据点在用户输入后都可见。
设置的轴限制可以是 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 );