在多列的变异性图表上使用 for 循环你好,
我在数据集中有几列,想要使用脚本将它们绘制在变异性图表中,以便我可以使用类似的设置生成这些图。 但有一个错误。 有人可以启发什么应该是正确的语法吗?
我的脚本:
dt = 当前数据表();
colnames = dt << 获取列名(数字);
显示(列名);
nw = 新窗口(“绘图”);
for(i=5, i测试 = colnames[i];
gb = 变异图(
Y(作为列(测试)),
X(:组,:批次,:晶圆),
最大迭代次数( 100 ),
转化限制( 0.00000001 ),
数积分横坐标( 128 ),
数字函数评估( 65536 ),
分析类型(名称(“选择最佳分析(EMS REML 贝叶斯)”)),
标准差图表( 0 ),
显示箱线图(1),
)
);
nw<<追加(报告(GB));
日志消息:
colnames = {批次,晶圆,X,Y,名称(“4V01PC03MHVN_BF00-LT-VL_HN_11.1X1.1-VALUE_F”),名称(“4V01PC03MHVN_BF00-LT-VL_HN_11.1X11.1-VALUE_F”),名称(“4V01PC03MHVN_BF00- LT-VL_MN_11.1X0.76-VALUE_F"), 名称("4V01PC03MHVN_BF00-LT-VL_MN_11.1X11.1-VALUE_F"), 名称("4V01PC03MHVN_BF00-LT-VL_MNT_11.1X0.76-VALUE_F"), 名称("4V01PC03MHVN_BF") 00 -LT-VL_MNT_11.1X11.1-VALUE_F"),名称("4V01PC04MHVP_BF00-LT-VL_HP_0.4X1.1-VALUE_F"),名称("4V01PC04MHVP_BF00-LT-VL_HP_11.1X1.1-VALUE_F"),名称(" 4V01PC04MHVP_BF00-LT-VL_HP_11.1X11.1-VALUE_F"),名称("4V01PC04MHVP_BF00-LT-VL_MP_11.1X1.1-VALUE_F"),名称("4V01PC04MHVP_BF00-LT-VL_MP_11.1X11.1-VALUE_F"),名称( "4V01PC06TX5V_BF00-LT-VL_N5_11.1X11.1-VALUE_F"), 名称("4V01PC06TX5V_BF00-LT-VL_P5_11.1X11.1-VALUE_F"), EndTimestamp};
在访问或评估“变异性图表”时未找到,错误参数({.,角色需要至少 1 列。} ), 变异性图(/*###*/Y( As Column( test ) ),
X(:组,:批次,:晶圆),
最大迭代次数( 100 ),
转化限制( 0.00000001 ),
数积分横坐标( 128 ),
数字函数评估( 65536 ),
分析类型(名称(“选择最佳分析(EMS REML 贝叶斯)”)),
标准差图表( 0 ),
显示箱线图( 1 )
)
在以下脚本中,错误标记为 /*###*/
dt = 当前数据表();
colnames = dt << 获取列名(数字);
显示(列名);
nw = 新窗口(“绘图”);
For( i = 5, i < N 项( colnames ), i++,
测试 = colnames[i];
gb = 变异性图(/*###*/Y( As Column( test ) ),
X(:组,:批次,:晶圆),
最大迭代次数( 100 ),
转化限制( 0.00000001 ),
数积分横坐标( 128 ),
数字函数评估( 65536 ),
分析类型(名称(“选择最佳分析(EMS REML 贝叶斯)”)),
标准差图表( 0 ),
显示箱线图( 1 )
);
);
nw << 附加( 报告( gb ) );
回复:在多列的变异性图表上使用 for 循环你好,谢谢你的改变。 它按照我想要的方式工作。
回复:在多列的变异性图表上使用 for 循环你好,
感谢您的提示。 但提示#1 不适用,因为我真的想从 5 开始。
回复:在多列的变异性图表上使用 for 循环有几个原因导致了该错误。 一个是在 For() 循环中,您正在初始化 i = 5,当我假设您想要从存储在 colnames 中的列表中的第一项开始时,因此它应该是 i = 1。 第二件事是您不需要使用 As Column() - 您可以简单地使用在每次迭代中存储列名称的变量名称 (test) Y( test )。
此外,您将在 For() 循环之外附加变异性图表,这意味着只有最后一个图才会添加到窗口中。 您希望代码的最后一行位于循环内。 希望这可以帮助!
回复:在多列的变异性图表上使用 for 循环我已经更改了您的代码,我认为它会按照您希望的方式工作。
1. 我在您的“新窗口”中添加了一个 V List Box()。 这将使您能够更好地控制所需输出的顺序。 如果您希望显示从左到右,请更改为 H 列表框 ()。
2. 我在变异图表中添加了“Invisible”元素。 我假设您想要的是最终得到一个窗口,每个图表没有单独的窗口。
3. As Column() 不起作用。 我不知道为什么不! 但是,更改为 Column() 函数是有效的。 另外,我消除了对“Test”变量的需要,因为在变量图表代码中仅包含列表引用 ColNames[] 会更干净。
4. 我假设您想要的是包含所有输出的单个窗口。 您在代码末尾的附加只会附加最后一个图表。 对“gb”的提及不是附加的。 每次在 For() 循环中引用“gb”时,它都会更改为每个连续的图表。 因此,追加需要在循环内。
dt = Current Data Table();
colnames = dt << get column names( numeric );
Show( colnames );
nw = New Window( "Plots", myVLB = V List Box() );
For( i = 5, i < N Items( colnames ), i++,
gb = Variability Chart(
invisible,
Y( Column( colnames[i] ) ),
X( :Group, :Lot, :Wafer ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( Name( "Choose best analysis (EMS REML Bayesian)" ) ),
Std Dev Chart( 0 ),
Show Box Plots( 1 ),
);
myVLB << append( Report( gb ) );
);