通过 JSL 为列属性设置规范限制 - 图中未显示的行你好
我有一个脚本,将规格限制(USL/LSL)分配给列属性,然后绘制列图,我希望
查看绘图上绘制的限制线。 发生的情况是在表中正确设置了限制,但在图上不可见。
如果我在运行脚本后手动在此列上绘制相同的图 - 不再有线条。
如果我打开列规格属性窗口,我会看到限制,“显示参考线”已打开。
只有当我点击“应用”然后再次绘图时 - 我才能按预期看到绘图上的线条。 但我不能让它通过脚本工作..
任何的想法?
(使用 JMP PRO 15)


数据表图形脚本视窗回复:通过 JSL 为列属性设置规格限制 - 图中未显示的行你好@shlomi_bakish ,
你能提供一个 JSL 代码的例子吗? 这可能有助于诊断您遇到的问题。 同时,这部分代码是一个示例,说明如何设置列的规格限制并确保它们已打开以进行绘图。
//Turn on spec lines for graphs
dt = Current Data Table( ); //just a way of setting the current data table to the variable dt
<BR />dt_ColNames = dt << Get Column Names( string ); //Gets the column names from the data table
<BR />For( i = 1, i <= N Items( dt_ColNames ), i++,<BR />
spec = Column( dt, dt_ColNames[i] ) << Get Property( "Spec Limits" ); //This gets the Boolean spec property of each column
<BR />//now, for each column perform the task of assigning the spec limits<BR /> If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
Column( dt, dt_ColNames[i] ) << Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ), Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);//This whole Eval() is wrapping a Substitution(), which wraps an expression Expr(). <BR /> //The variables that will be substituted are __LSL__ and so on. The Show Limits (1) checks the box to turn on the limits as reference lines.
);
);这应该可以帮助您朝着正确的方向前进。 但是,如果不查看您的代码并了解您在做什么,就很难更具体地满足您的确切需求。
希望这可以帮助!,
DS
回复:通过 JSL 为列属性设置规格限制 - 图中未显示的行感谢您的及时回复! 我认为代码并不真正相关,因为它确实在列属性中正确设置了规格限制。
它设置 LSL 和 USL 并显示限制 (1),但即使设置正确,绘图也不会显示它们。
即使我使用具有固定数字的直接代码,它的行为也是一样的..
Column(DATA_DT,param) << Set Property( "Spec Limits", LSL( 0.31 ),USL(0.34),Show Limits(1) );

只有在点击“应用”并再次绘制图表后 - 它才会显示线条。
回复:通过 JSL 为列属性设置规格限制 - 图中未显示的行语法似乎略有偏差,您必须在 Spec Limits 之后添加 {}。 请参阅下面的脚本,如果不按应用,重量将不起作用,而高度将起作用。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, "weight") << Set Property("Spec Limits", LSL(50), USL(150), Show Limits(1));
Column(dt, "height") << Set Property("Spec Limits", {LSL(50), USL(100), Show Limits(1)});
gb = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(4)), Smoother(X, Y, Legend(5)))
);回复:通过 JSL 为列属性设置规格限制 - 图中未显示的行您似乎在图表最初显示后应用了限制。最初显示图表时会绘制限制,如果在该点之后添加限制,则必须重新绘制图表才能显示它们。
回复:通过 JSL 为列属性设置规格限制 - 图中未显示的行谢谢 !确实添加花括号解决了这个问题:)
你能解释为什么是