通過 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 為列屬性設置規格限制 - 圖中未顯示的行謝謝 !確實添加花括號解決了這個問題:)
你能解釋為什麼是