如何使用JSL實現?大家好,
如何使用JSL實現excel(附件)中概述的步驟?我還附加了一些JSL腳本,它可能對我嘗試使用JSL實現的一些中間步驟有用,所以如果它相關且有用,你可以復制它嗎?
Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where(
:Case == "C",
Fit Special( yTran( "Log" ), {Line Color( "Black" )} )
),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where(
:Case == "E",
Fit Special( yTran( "Log" ), {Line Color( "Blue" )} )
),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
)Re:我如何使用JSL實現?吉姆,嗨,
我正在嘗試對Case = A / B / C進行對數線性圖(登錄Y軸),並且在Column2 ==“20/30/40”中滿足第二個條件。我已經發布了下面的腳本(2種略有不同的方式),但是我收到如下錯誤。我哪裡錯了?
出乎意料的“和CPP”。也許缺少“,”或“)”。
試圖解析函數“Fit Where”的參數。
第6行第28列::案例==“A”►和Column2 ==“20”,
1。第一種方式:
二元(
Y(:名稱(“Y1”)),
X(:X1),
//適合特殊(yTran(“日誌”),{線條顏色({213,72,87})}),
適合哪裡(
:Case ==“A”和Column2 ==“20”,
適合特殊(yTran(“日誌”),{線條顏色(“深綠色”)}),
)
SendToReport(
調度(
{},
“1”,
ScaleBox,
{Min(60.936357421875),Max(81.283232421875),Inc(2),
小蜱(1),標籤行(
{Show Major Grid(1),Show Minor Grid(1)}
)}
)
調度(
{},
“2”,
ScaleBox,
{Scale(“Log”),Format(“Scientific”,11),Min(0.0000002),
Max(0.000634968347287381),Inc(1),Minor Ticks(1),
標籤行(
{顯示主網格(1),顯示次網格(1),設置字體大小(12)}
)}
)
)
)
2。第二種方式:
二元(
Y(:名稱(“Y1”)),
X(:X1),
//適合特殊(yTran(“日誌”),{線條顏色({213,72,87})}),
適合哪裡(
:案例==“A”
:Column2 ==“20”,
適合特殊(yTran(“日誌”),{線條顏色(“深綠色”)}),
)
SendToReport(
調度(
{},
“1”,
ScaleBox,
{Min(60.936357421875),Max(81.283232421875),Inc(2),
小蜱(1),標籤行(
{Show Major Grid(1),Show Minor Grid(1)}
)}
)
調度(
{},
“2”,
ScaleBox,
{Scale(“Log”),Format(“Scientific”,11),Min(0.0000002),
Max(0.000634968347287381),Inc(1),Minor Ticks(1),
標籤行(
{顯示主網格(1),顯示次網格(1),設置字體大小(12)}
)}
)
)
)
謝謝,
廣告
Re:我如何使用JSL實現?嗨吉姆,我試過兩個(一次一個)
DT << 按標記列 (:晶圓ID);
DT << 按組標記 (:晶圓ID);
在做如下圖之前,但它沒有做我想要的
Biv = dtStack << 二元 (
Y(...
謝謝,
廣告
Re:我如何使用JSL實現?非常感謝Jim的明確解釋。讓我試試看。
問候,
廣告
Re:我如何使用JSL實現?關於你的Open()函數,如果你的JMP數據表保存在Documents文件夾中,並且被稱為“filename.jmp”,那麼它是正確的。
代碼
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
只是使用堆棧數據表平台
表==>堆棧
您可以手動對數據表運行它,並獲得與腳本相同的結果。 但基本上,有兩組要堆疊的列,x1,x2,x3,以及y1,y2,y3的相同y變體。 因此,在Columns()規範中指定6列,並設置Number of Series(2)。 Contigous元素表示在中間拆分列表,而不是在x1,y1 .....等之間交替。 堆疊列時,測量值將放入名為Data的新列中。 列名稱放在名為Label的新列中。 由於我們正在堆疊2組列,因此列數據和數據2,標籤和標籤2。
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
此代碼只刪除Label和Label 2列,因為我們不需要它們,然後將Data和Data 2重命名為更有意義的名稱。
您可以在使用JMP文檔中閱讀有關堆棧平台的信息
幫助==>書籍==>使用JMP
Re:我如何使用JSL實現?吉姆,嗨,
我打開了我的excel文件並保存為JMP工作表。然後我正在使用
dt = 打開 ( “C:\用戶\用戶名\文件\ filename.jmp” );
這種格式是否正確?
我認為在實現代碼後我無法獲得該圖,我需要更好地理解您的代碼,因為我的數據集參數在參數名稱等方面有所不同。
你能解釋一下什麼是“標籤”,“標籤2”,數據,數據2?我是否需要在我的數據集中明確定義它們。截至目前,它們尚未定義。我沒有在您創建的數據集表中看到它們的定義。
dtStack = dtSumm << 堆 (
列(:x1,:x2,:x3,:y1,:y2,:y3),
源標籤列( “標籤” )
堆疊數據列( “數據” )
名稱 ( “非堆疊列” )(保持(:案例)),
系列數量( 2 )
鄰近的
);
//清理數據表
dtStack << 刪除列 ({ “標籤” , “標籤2” });
dtStack:數據<< 設定名稱 ( “x1_x2_x3” );
dtStack:數據2 << 設定名稱 ( “y1_y2_y3” );
問候,
廣告
Re:我如何使用JSL實現?您的電子表格佈局是什麼樣的?如果它是一個行和列表.....就像一個JMP數據表,那麼語法就是:
dt = open("<PATH to="" your="" excel="" file="">");</PATH>Re:我如何使用JSL實現?吉姆,嗨,
哦!我明白了......太糟糕了,我沒有意識到。非常感謝你解釋這個問題。這聽起來很不錯 !我正在將數據從Excel文件讀入JMP。這樣做有一種聰明的方法嗎?
問候,
廣告
Re:我如何使用JSL實現?好的......我應該更清楚了。 我提供的所有創建數據表的代碼都放在那裡,只是為了能夠創建一個示例數據表來演示代碼。 您可以直接從Excel輸入數據表,也可以在有數據的地方輸入數據表。 一旦您讀入數據,該腳本的唯一真實部分是:
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);
順便說一句,您使用什麼方法輸入數據?如果您遇到問題,我們也可以解決這個問題。
Re:我如何使用JSL實現?吉姆,嗨,
感謝您的快速解決方案!如果你能幫忙,我還有一些問題。
我想知道這是否是JSL腳本將容易擴展為大型數據集。
1。看來你硬編碼了每個案例“A”,“B”,......“F”的實例數。
如果每個案例有2-3個實例,那麼可以這樣做,但是如果我有更多像100個實例的“A”,“B”......“F”那怎麼辦。那麼我必須在下面的代碼中重複“A”100次?
設定值(
{ “一個” , “一個” , “一個” , “B” , “B” , “B” , “C” , “C” , “C” , “d” , “d” , “d” , “E” , “E” ,
“E” , “F” , “F” , “F” }
2。您還輸入了列變量的每個值:“x1”,“x2”....“”y3“,如下所示。同樣,我為每個變量都有> 1000行數據。然後輸入每個變量的所有值看起來更麻煩。
新欄目 ( “X1” ,
數字,
“連續” ,
格式 ( “最好” , 12 )
設定值(
[ 1.61428690437666 , 10.1190080125253 , 6.73662807021899 , 8.01466805846589 ,
6.68158041069847 , 5.7112128821412 , 2.84688009253613 , 8.24143884561082 ,
7.93797713835799 , 7.60500406538651 , 6.10376724167353 , 7.49901866647003 ,
6.75689551558008 , 8.47900118679714 , 8.31129239105815 , 2.25776032554558 ,
3.47918899345697 , 7.54113635144146 ]
如果有更簡單的方法為更大的數據集實現此功能,能否請您幫忙告訴我?
問候,
廣告
Re:我如何使用JSL實現?吉姆,嗨,
非常感謝您的詳細回复。我很感激,讓我嘗試一下,我會告訴你。
問候,
廣告
Re:我如何使用JSL實現?這是一個生成所需表和輸出的簡單腳本

Names Default To Here( 1 );
//dt = Current Data Table();
dt = New Table( "Example",
Add Rows( 18 ),
New Column( "Case",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "B", "B", "B", "C", "C", "C", "D", "D", "D", "E", "E",
"E", "F", "F", "F"}
)
),
New Column( "x1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[1.61428690437666, 10.1190080125253, 6.73662807021899, 8.01466805846589,
6.68158041069847, 5.7112128821412, 2.84688009253613, 8.24143884561082,
7.93797713835799, 7.60500406538651, 6.10376724167353, 7.49901866647003,
6.75689551558008, 8.47900118679714, 8.31129239105815, 2.25776032554558,
3.47918899345697, 7.54113635144146]
)
),
New Column( "x2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[5.47938474920207, 6.18766439511594, -6.23767012529314, 2.09002457182833,
4.8113689086524, 7.03651072603935, -3.04550198990374, 11.8452893346908,
-3.05733149292515, 1.30049361512582, 1.01507442873964, 2.09317649939774,
7.41286830274582, 7.34393706953047, 6.35773586672512, 6.45581826439945,
14.9562095399741, 10.0634660675686]
)
),
New Column( "x3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[11.2656869903562, 2.97417375436776, 2.7691367152201, 9.75641926280114,
9.70879299538533, 7.16035571615696, 9.79872763007834, 2.99361815483094,
7.34989095258795, 11.8347155967071, 13.840944548243, 6.91213509473278,
12.9829334337807, 4.69016477226892, 6.5541527241742, 10.449257706405,
8.71860875295487, 2.75703552707507]
)
),
New Column( "y1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000021187715823, 0.0000000007070458434, 0.0000000021305415897,
0.000000002187751479, 0.0000000015163549964, 0.0000000006662765716,
0.0000000013568530851, 0.0000000022185225971, 0.0000000008126367887,
0.0000000014370349256, 0.0000000025500410724, 0.0000000019674810787,
-0.0000000005869971784, 1.82706897276242e-10, 0.0000000014877347984,
6.66831811738687e-11, 0.000000001044052589, 0.0000000019169076496]
)
),
New Column( "y2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000111634035809, 0.0000000150934383918, 0.0000000092632031811,
0.0000000014897580792, 0.0000000129447047918, 0.0000000038471184132,
0.000000020378302554, 0.0000000084939824652, 0.0000000306867238143,
0.0000000083704926078, -0.0000000019845073029, 0.0000000221987482462,
-1.12731592825071e-10, 0.0000000341691546291, 0.0000000243189078007,
0.0000000142112672565, 0.0000000157219085064, 0.0000000163609065787]
)
),
New Column( "y3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.0000001356080410826, 0.0000003110230604448, 0.0000000731675260394,
0.0000000683020170167, 0.0000000166660984052, 0.0000001245784167858,
0.0000001917424143272, 0.0000000592217777822, 0.0000000682651021339,
0.0000001310868753601, 0.0000000929550618751, 0.0000001752103336127,
0.0000000988598859477, 0.0000000990272186345, 0.000000121745118966,
0.0000001243361078368, 0.0000001992144095096, 0.000000090951358824]
)
)
);
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);Re:我如何使用JSL實現?吉姆,嗨,
如何為每種Case(A / B / C)選擇不同的標記樣式(*,z,x等)和標記顏色(紅色/藍色),並使用JSL實施它?我可以為堆疊的JMP表中的每一行手動分配標記樣式和顏色,但是可以在JSL中輕鬆完成嗎?