For 循环和列表你好,
我打算构建一个图形生成器,以便每次可视化不同的数据列。图形生成器应该能够接受任意数量的输入列(只要少于 8 个)。我构建了一个输入 GUI,但我认为没有记录 y 值。我怎样才能正确地将选定的 Y 列数据传递给图形生成器?谢谢!


自动化和脚本数据访问视窗回复:For 循环和列表请使用
图标来显示您的 JSL。它允许读者测试您的代码并提供回复。粘贴代码的图像不允许这样做,因此许多可能的响应者会选择不回复,因为重新输入您的 JSL 需要时间
回复:For 循环和列表嵌入的日志显示“数据表中未找到指定的列。在访问或评估‘For’时,For/*###*/(j = 1,j <= Min( 8,N Items( yCol ) ),j++,Y( Eval( yCol[j] ) ))”
但我使用的列显然在我的数据表中。
回复:For 循环和列表names Default To Here(1);
MyGraph = Function ({yCol,xCol},{default local},
vlb = VListBox(
Graph Builder(
Size( 1255, 981 ),
Show Control Panel( 0 ),
Variables(
X( Eval(xCol) ),
For(j = 1, j <= Min(8, N Items(yCol)), j++,
Y( Eval(yCol[j])) // Evaluate each yVar
),
Group X( :Temperature )
),
Elements( Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Y( 5 ), Y( 6 ), Y( 7 ), Y( 8 ), Legend( 11 ) ) ),
Local Data Filter(
Add Filter(
columns( :Test Stage, :Sublot, :Temperature, :Soft Bin ),
Display( :Test Stage, N Items( 4 ) ),
Display( :Soft Bin, N Items( 15 ) )
)
)
)
);
return(vlb);
);
dt = CurrentDatatable();
nw = NewWindow("Column Selection", <<MODAL></MODAL>回复:For 循环和列表谢谢您的建议,这是我的完整脚本。
回复:For 循环和列表您可以先准备好变量,然后使用插入将其放入图形生成器中。
MyGraph = Function ({yCol,xCol},{default local},
vars= Eval Expr(Variables(
X( Expr(xCol) ),
Group X( :Temperature )
));
pts= Expr(Points( X));
For(j = 1, j <= Min(8, N Items(yCol)), j++,
Insert Into(vars, Eval Expr(Y( Expr(yCol[j]))));
);
gb = Expr(
Graph Builder(
));
Insert Into(gb, Name Expr(vars));
VListBox(gb)
);回复:For 循环和列表一旦:folded_hands:表达式索引:在 JMP 的未来版本中将提供读写访问,这样的事情就会变得更容易……
然后,您不必准备不同的部分,然后构建最终的表达式,您可以直接创建最终表达式的草稿,然后在您想要的任何级别上对其进行操作。
例如通过以下方式添加额外的 Y 变量
Insert Into ( gbExpression["Variables"], Expr(Y(:age)))
回复:For 循环和列表成功了!非常感谢!