图形构建器中的动态 Y 变量可由用户选择你好,
我正在尝试根据用户复选框的选择,动态控制图表构建器中的多个 Y 轴。
硬编码的 Y 变量工作正常,但任何动态构造都会失败(Y 未解析、被忽略或为空图)。
我尝试过:
对我都没用。
-
Y变量的动态数量(1-4)
-
每个 Y 都有独立的界限/参考线
-
无法堆叠数据
-
必须使用图表构建器
// Does NOT work
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Simulate user selection
Chosen_Ys_list = {"height", "weight"};
// Attempt to build Y list dynamically
Y_List = {};
For( i = 1, i <= N Items( Chosen_Ys_list ), i++,
Insert Into( Y_List, Expr( Y( Eval( Chosen_Ys_list[i] ) ) ) );
);
dt << Graph Builder(
Variables(
X( :age ),
Eval( Y_List ) // <- ignored or errors
)
);
// 2nd try
gb = dt << Graph Builder(
Variables( X( :age ) )
);
gb << Add Variable( Y( :height ) ); // Name Unresolved: Y
自动化和脚本编写数据探索与可视化回复:关于用户选择的图表构建器中的动态 Y 变量对于“<< 添加变量”功能,您可以在脚本索引中找到正确的语法。

不确定最终的图表应该是什么样子,所以这里只举一个使用“添加变量”的简单例子。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"height", "weight"};
gb = dt << Graph Builder(Variables(X(:age)));
For Each({colname}, cols,
Eval(EvalExpr(
gb << Add Variable({Expr(Name Expr(AsColumn(dt, colname))), Role("Y")})
));
);

回复:关于用户选择的图表构建器中的动态 Y 变量您的 Y_List 存在问题:

除此之外,你还会遇到“列表”方面的问题。
除了使用添加变量()之外,您还可以从变量表达式开始,添加更多变量,然后在 Graph Builder 命令中使用它。
无论采用何种方法, 评估 、 评估实验 、 Expr和名称表达式在代码中的正确位置都至关重要。
详细信息请参阅文档。
……以及一些社区帖子
https://www.google.com/search?q=expression+handling++site%3Acommunity.jmp.com
Variables_Expr = Expr(Variables (X(:age)));
For( i = 1, i <= N Items( Chosen_Ys_list ), i++,
Insert Into( Variables_Expr, Eval Expr( Y( Expr(Name Expr(As Column( Chosen_Ys_list[i] ) ) ) );
)));
Eval (Eval Expr(dt << Graph Builder(
Expr(Name Expr(( Variables_Expr ) ))
)));