Hola a todos,
Tengo un problema con la representación gráfica de algunos datos de un experimento FTIR. Tengo una lista que contiene el nombre de las columnas que quiero representar gráficamente en el eje Y para que todas estén superpuestas en la misma escala (no una encima de la otra). Pero, de alguna manera, no logro entender cómo escribir el código.
Lo intenté así, pero parece que "Posición([1])" realmente no funciona.
¿Alguien puede ayudar?
¡Gracias!
gb = dt<< Graph Builder(
Show Control Panel(1),
Variables(X(:Wavenumber)),
Elements( Line(X,Y))
);
gb << inval;
For Each({y_col, idx}, columns_list,
Eval(evalExpr(
gb << Add Variable({Expr(Name Expr(As Column(dt, y_col))),Position([1]), Role("Y")})
));
);
gb << Update window;¿Has comparado cómo se vería el script si Graph Builder lo creara? Hay un pequeño error en tu código
Graph Builder(
Variables(
X(:SITE),
Y(:NPN1),
Y(:PNP1, Position(1)),
Y(:PNP2, Position(1)),
Y(:NPN2, Position(1))
),
Elements(Line(X, Y(1), Y(2), Y(3), Y(4), Legend(4)))
);
Observe cómo se utiliza Position (tiene [] adicional. También le faltaban ",", lo cual arreglé cuando agregué formato JSL a su código para poder usar el formato JSL más fácilmente).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
gb = dt<< Graph Builder(
Show Control Panel(1),
Variables(X(:Site)),
Elements(Line(X,Y))
);
columns_list = {"NPN1", "PNP1", "PNP2", "NPN2"};
For Each({y_col, idx}, columns_list,
Eval(evalExpr(
gb << Add Variable({Expr(Name Expr(As Column(dt, y_col))), Position(1), Role("Y")})
));
);

Hola jthi!
De hecho, el único problema fue con el [ ]... ¡Gracias por detectar esto!
Mejor,
Luis