在可變圖表中組合 For 循環和 Dispatch() 命令大家好,
我是 JMP 和一般編程的新手。 我目前的挑戰:
我有一個包含 800 列的大型數據表。 現在我想使用變異性圖表創建箱形圖,但使用一個列表,我首先在其中定義我想使用的 800 列中的哪些列。 然後我創建一個 For 循環,如下所示。
讓 concat 工作的正確語法是什麼?
謝謝
Datalist_log = {Test1, Test2, Test33, Test50}; //first I define the list with the tests I Need. It needs to be like this in the code.
imax = N Items( Datalist );
//Boxplots
For( i = 1, i <= imax, i++,
Variability Chart(
Y( Datalist_log[i] ), //Loop cycling through the list putting the respective column on the Y axis
X( :wafernr ),
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 ),
Show Box Plots( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for Test1"}, <BR />// This is how it looks when it works. <BR />//But I need to replace the hard coded string with an element from<BR />//the list defined above as a part of the Loop, for example:
{"Variability Chart for " ||Datalist_log[i]}, <BR />//This is my most promising attempt. But I have failed to understand how the concat works.
//If i manually change the argument to <BR />//{"Variability Chart for XYSomethingElse"}, the outcome is the same, meaning that the <BR />//formatting commands (lot plot, scientific axis etc.) that follow are all ignored.
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000000001 ), Max( 0.000001 ), Inc( 1 ), Minor Ticks( 0 ),
Add Ref Line( UpperSpec_log[i], "Dotted", "Black", "USL", 2 )}
),
Dispatch(
{"Variability Chart for Test1"},
"Variability Chart",
FrameBox,
{Frame Size( 600, 240 ), Marker Size( 1 ),
DispatchSeg( Box Plot Seg( 1 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 2 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 3 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 4 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 5 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 6 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 7 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 8 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 9 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 10 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 11 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 12 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 13 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 14 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 15 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 16 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 17 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 18 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 19 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 20 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 21 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 22 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 23 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 24 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 25 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} )}
),
Dispatch( {"Variability Chart for Test1"}, "", NomAxisBox, {Set Width( 573 ), Set Height( 21 )} ),
Dispatch( {"Variability Chart for Test1"}, "Varability Std Chart", FrameBox, {Frame Size( 559, 180 )} )
)
//)
);
回复:在可變圖表中組合 For 循環和 Dispatch() 命令您的代碼片段不允許我找出問題所在。我最初的建議是關閉 JMP,然後重新啟動它。在極少數情況下,JMP 會感到困惑。重新啟動 JMP 將清除該內存。
如果您能提供完整的腳本和示例數據表,將會很有用。
回复:在可變圖表中組合 For 循環和 Dispatch() 命令嗨,吉姆,
在編輯我的帖子 4-5 次後發生了一些事情,該網站說它需要在它變得可見之前進行審查,然後它就消失了。 這就是為什麼我沒有看到答案。
事實上,在發布最初的問題後,我做了一些愚蠢的事情並且它起作用了,所以我認為我已經解決了。 但後來我發現無論我在 Dispatch() 之後寫什麼(見下文),它都有效。
我將嘗試弄清楚 Eval、Expr 和 Substitute 的實際作用。 多謝
For( q = 1, q <= kmax, q++,
Variability Chart(
Y( Datalist_log[q] ),
X( :wafernr ),
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 ),
Show Box Plots( 1 ),
Disp_String = concat Items ({VarChartText,Datalist_log[q]}), //This is useless
SendToReport(
Dispatch(Disp_stringxyuz12034823048, //Does not matter what I write here
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000000001 ), Max( 0.000001 ), Inc( 1 ), Minor Ticks( 0 ),
Add Ref Line( UpperSpec_log[q], "Dotted", "Black", "USL", 2 )}
),
Dispatch(Disp_Stringsomethingelse,
"Variability Chart",
FrameBox,
{Frame Size( 600, 240 ), Marker Size( 1 ),
DispatchSeg( Box Plot Seg( 1 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot S
...
...
...回复:在可變圖表中組合 For 循環和 Dispatch() 命令這是您的代碼的返工,使用了 JSL 中非常強大的功能,即 Substitution。我註釋掉了您的 UpperSpec_log 參考行,因為我沒有可用的列表。但是,如果您在運行變異性圖表平台之前將它們作為列屬性添加到列中,變異性圖表平台將自動繪製這些規格限制。一旦將限制添加為列屬性,許多平台將允許顯示規格限制。
這是我修改後的代碼
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
Try(dt:Wafer << Set Name( "wafernr" ));
Datalist_log = {NPN1, PNP1, NPN2}; //first I define the list with the tests I Need. It needs to be like this in the code.
imax = N Items( Datalist_log );
//Boxplots
For( i = 1, i <= imax, i++,
Eval(
Substitute(
Expr(
Variability Chart(
Y( __DataList__ ), //Loop cycling through the list putting the respective column on the Y axis
X( :wafernr ),
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 ),
Show Box Plots( 1 ),
SendToReport(
Dispatch(
{__VarChart__},
// This is how it looks when it works.
//But I need to replace the hard coded string with an element from
//the list defined above as a part of the Loop, for example:
//{"Variability Chart for " || Datalist_log[i]},
//This is my most promising attempt. But I have failed to understand how the concat works.
//If i manually change the argument to
//{"Variability Chart for XYSomethingElse"}, the outcome is the same, meaning that the
//formatting commands (lot plot, scientific axis etc.) that follow are all ignored.
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000000001 ), Max( 0.000001 ), Inc( 1 ), Minor Ticks( 0 )//,
//Add Ref Line( UpperSpec_log[i], "Dotted", "Black", "USL", 2 )
}
),
Dispatch(
{__VarChart__},
"Variability Chart",
FrameBox,
{Frame Size( 600, 240 ), Marker Size( 1 ), DispatchSeg(
Box Plot Seg( 1 ),
{Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )}
), DispatchSeg( Box Plot Seg( 2 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 3 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 4 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 5 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 6 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 7 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 8 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 9 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 10 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 11 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 12 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 13 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 14 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 15 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 16 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 17 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 18 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 19 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 20 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 21 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 22 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 23 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 24 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} ),
DispatchSeg( Box Plot Seg( 25 ), {Box Type( "Outlier" ), Line Color( "Red" ), Line Width( 2 )} )}
),
Dispatch( {__VarChart__}, "", NomAxisBox, {Set Width( 573 ), Set Height( 21 )} ),
Dispatch( {__VarChart__}, "Varability Std Chart", FrameBox, {Frame Size( 559, 180 )} )
)
)
),
Expr( __DataList__ ), Parse( ":" || Char( DataList_Log[i] ) ),
Expr( __VarChart__ ), "Variability Chart for " || Char( DataList_Log[i] )
)
)
);