帮助为动态轴限制设置拉取数据你好,
我试图根据绘制的当前数据确定图表上的轴限制,以便在用户输入后所有参考线和数据点都可见。
轴限制设置将是 USL / LSL 参考线的值或绘制的最高 / 最低数据点。 变异图中使用的图表和数据是第 2 列中按第 1 列分组的值。
最初,我认为我可以通过确定两个值的最小值/最大值来做到这一点,其中对数据的引用由带有
Var1_Min = Eval( Min((LSL[1]*0.95), Col Minimum( :Column 2, :Column 1["Group1"] )));
我花了很多时间搜索,但似乎找不到可以满足我需要的功能 - 任何 ide?
图形脚本回复:帮助为动态轴限制设置提取数据感谢您的回复吉姆!
不幸的是,我的列没有单一的规格限制,因为基于另一列的值之间存在区别,所以我还没有找到一种方法来执行传统的列规格限制,而无需将我的数据完全拆分为两个表。
通过使用 Get Rows Where,我最终能够找到解决问题的方法:
<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 );