基于 USL 和 LSL 规格限制的变异图 Y 轴自动缩放当存在异常数据时,我的图表总是缩放到混合点或最大值,这使得图表不可见。
是否可以使用 JSL 脚本根据已嵌入参数中的参数 USL 和 LSL 限制动态设置变异性图表 Y 轴? 请指教。 谢谢
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放您需要检查导致警报的代码之前的列数等是否正确,然后添加处理该问题所需的代码。回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放如果我仅调用一项/列,如何处理“JMP 警报”?
“for 循环”导致此警报
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放这样做,我有一种感觉,显示图表需要更长的时间。
再次感谢您的支持!
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放对我来说看起来不错。 我不太确定其他改进,因为我不知道数据。回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放嗨吉姆,
非常感谢您的支持!
我通过此增强了您的代码,以获得更好看的图表:
owr[i][AxisBox( 2 )] << Min( spec["LSL"] - 0.1 * (spec["USL"] - spec["LSL"]) ) <<
Max( spec["USL"] + 0.1 * (spec["USL"] - spec["LSL"]) ) << Inc( (spec["USL"] - spec["LSL"]) / 10 );
owr[i][AxisBox( 2 )] << Format( Best, 6 );
这是你也会做的事情吗?
或者有更优雅的方式吗?
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放请参阅下面的脚本,了解处理您的新请求所需的更改。在大多数情况下,任何列列表都可以通过 Eval() 函数替换为平台请求,该函数将列表表达为 JMP。请参阅
Eval( colList )
在下面的脚本中。
假设您现在已经阅读了脚本指南中有关显示树的部分,脚本索引中的示例记录了可以传递给显示对象的消息
帮助==>脚本索引
检查 AxisBox() 的消息,您将看到所有可用的消息。其中有Inc()。正是这种轴增量的改变被用来确保在改变最小和最大轴值之后图表中的值。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = {"NPN1", "PNP1"};
For( i = 1, i <= N Items( colList ), i++,
// Turn on Show Limits
spec = Column( dt, colList[i] ) << Get Property( "Spec Limits" );
If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
Column( dt, colList[i] ) << Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ), Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);
);
);
// create the graphs
ow = Oneway(
Y(
eval(colList)
),
X( :site ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Std Dev Lines( 1 ),
Legend( 0 ),
SendToReport(
Dispatch(
{"Normal Quantile Plot"},
"Oneway QuantilePlot",
FrameBox,
{Row Legend(
Corner,
Color( 1 ),
Color Theme( "" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
owr = ow << report;
// adjust the axes
For( i = 1, i <= N Items( owr ), i++,
spec = Column( dt, colList[i] ) << Get Property( "Spec Limits" );
(owr[i])[AxisBox( 2 )] << Min( spec["LSL"] ) << Max( spec["USL"] )
<< inc ((spec["USL"] - spec["LSL"]) / 10 );
);回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放谢谢! 有效。
1)
您还可以帮我通过脚本调整 x 轴设置吗?
LSL 和 USL 之间没有值。
也许,有一种策略可以自动调整 x 轴并具有有意义的 Tick/Bin 增量?
2)
是否可以给予列列表= { “NPN1” , “PNP1” } ;到
噢=单程(
是(
:姓名( “NPN1” ) ,
:姓名( “PNP1” )
) , --> 代替 :Name(), :Name()

回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放这是一个脚本,应该向您展示如何正确指定轴。您需要学习的新知识是显示树的操作。JMP 文档库中的脚本指南对此进行了记录
帮助==>JMP 文档库

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = {"NPN1","PNP1"};
For(i=1,i<=N Items(colList),i++,
// Turn on Show Limits
spec = column(dt,colList[i]) << Get Property( "Spec Limits" );
If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
column(dt, colList[i]) <<
Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ),
Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);
);
);
// create the graphs
ow = Oneway(
Y(
:Name( "NPN1" ),
:Name( "PNP1" )
),
X( :site ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Std Dev Lines( 1 ),
Legend( 0 ),
SendToReport(
Dispatch(
{"Normal Quantile Plot"},
"Oneway QuantilePlot",
FrameBox,
{Row Legend(
Corner,
Color( 1 ),
Color Theme( "" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
owr = ow << report;
// adjust the axes
For( i=1, i<= n items(owr),i++,
spec = column(dt,colList[i]) << Get Property( "Spec Limits" );
(owr[i])[AxisBox(2)] << min(spec["LSL"])<<MAX></MAX>
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放你好,
如何修改下面的脚本以将图形自动缩放到 LSL 和 USL。
@马丁德梅尔

Oneway(
Y(
:Name( "test1" ),
:Name( "testn" )
),
X( :Corner ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Std Dev Lines( 1 ),
Legend( 0 ),
SendToReport(
Dispatch(
{"Normal Quantile Plot"},
"Oneway QuantilePlot",
FrameBox,
{Row Legend(
Corner,
Color( 1 ),
Color Theme( "" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放你好,
我想对趋势图使用相同的解决方案,但遇到语法问题。
有人知道如果我的限制列名称是:“CENTERLINE”、“LCL_HS”、“UCL_HS”,我需要更改哪些字段?
如果我要按列创建双变量图表,是否需要调整?
谢谢!
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放谢谢吉姆。 它工作完美!回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放下面是一个示例脚本,显示了使用 USL 和 LSL 设置最大和最小轴设置的精确代码。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Turn on Show Limits
spec = dt:NPN1 << Get Property( "Spec Limits" );
If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
dt:NPN1 <<
Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ),
Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);
);
// Build the Chart
vc = Variability Chart(
Y( :NPN1 ),
X( :lot_id ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Std Dev Chart( 1 )
);
// Set the Min and Max
Report( vc )[axisbox( 1 )] << Max( spec["USL"] );
Report( vc )[axisbox( 1 )] << Min( spec["LSL"] );回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放嗨特克斯尼尔森,
谢谢你的建议。 但不幸的是,这不是我正在寻找的解决方案。 轴框将提示用户手动键入最小值/最大值。 我希望 JSL 根据嵌入的 LSL 和 USL 规范参数自动进行缩放,而无需人工交互。
有什么选择可以这样做吗?
回复:基于 USL 和 LSL 规格限制的变异性图表 Y 轴自动缩放简单的答案是肯定的……参见
帮助==>脚本索引==>轴框
以下是使用双变量的脚本索引的示例,但相同的功能也可用于变异性图表
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate(
Y( :weight ),
X( :height ),
FitLine
);
rbiv = biv << report;
axisbox = rbiv[axis box( 1 )];
axisbox << Max( 120 );