Variables Y dinámicas en Graph Builder según la selección del usuarioHola,
Estoy intentando controlar dinámicamente varios ejes Y en Graph Builder en función de la selección de una casilla de verificación del usuario.
Las variables Y codificadas funcionan bien, pero cualquier construcción dinámica falla (Y sin resolver, ignorada o gráfica vacía).
Lo he intentado:
Ninguno me funciona.
-
Número dinámico de variables Y (1–4)
-
Cada Y tiene límites independientes / líneas de referencia
-
No se pueden apilar datos
-
Debe utilizar Constructor de gráficos
// 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
Automatización y scriptingExploración y visualización de datosRe: Variables Y dinámicas en Graph Builder según la selección del usuarioPara << Agregar variable, puede encontrar la sintaxis correcta en el Índice de secuencias de comandos

No estoy seguro de cómo se supone que debe verse el gráfico final, por lo que aquí hay solo un ejemplo simple usando << Agregar variable
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")})
));
);

Re: Variables Y dinámicas en Graph Builder según la selección del usuarioHay un problema con tu Y_List:

Además de eso, tendrás problemas con la "Lista".
Como alternativa a Add Variable() , puede comenzar con una variable_expr , agregar más variables y luego usarlo en el comando Graph Builder.
Independientemente del enfoque, el posicionamiento correcto de Evaluar , Expresión de evaluación , Expr y NombreExpr en el código es esencial.
Los detalles se pueden encontrar en la documentación.
...y en algunas publicaciones de la comunidad
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 ) ))
)));