如何使用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实现?吉姆,嗨,
如何为每个Case(A / B / C)选择不同的标记样式(*,z,x等)和标记颜色(红色/蓝色)并使用JSL实现它?我可以手动为堆叠的JMP表中的每一行指定标记样式和颜色,但是可以在JSL中轻松完成吗?
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" )} )}
)
)
);