Dynamische Y-Variablen im Graph Builder aus BenutzerauswahlHallo,
Ich versuche, mehrere Y-Achsen im Graph Builder dynamisch zu steuern, basierend auf der Auswahl eines Benutzers in einer Checkbox.
Fest codierte Y-Variablen funktionieren einwandfrei, aber jede dynamische Konstruktion schlägt fehl (Y wird nicht aufgelöst, ignoriert oder es entsteht ein leerer Plot).
Ich habe Folgendes versucht:
Keines davon funktioniert bei mir.
-
Dynamische Anzahl der Y-Variablen (1–4)
-
Jedes Y hat unabhängige Grenzwerte/Referenzlinien
-
Daten können nicht gestapelt werden
-
Graph Builder muss verwendet werden.
// 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
Automatisierung und SkripterstellungDatenexploration und -visualisierungBetreff: Dynamische Y-Variablen im Graph Builder aus BenutzerauswahlFür << Variable hinzufügen finden Sie die korrekte Syntax im Skriptindex.

Ich bin mir nicht sicher, wie das endgültige Diagramm aussehen soll, daher hier nur ein einfaches Beispiel mit << Variable hinzufügen
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")})
));
);

Betreff: Dynamische Y-Variablen im Graph Builder aus BenutzerauswahlEs gibt ein Problem mit Ihrer Y_Liste:

Darüber hinaus werden Sie auf Probleme mit der "Liste" stoßen.
Alternativ zur Funktion Add Variable() können Sie mit einem variable_expr beginnen, weitere Variablen hinzufügen und diesen dann im Graph Builder-Befehl verwenden.
Unabhängig vom gewählten Ansatz ist die korrekte Positionierung von Eval , Eval Expr , Expr und NameExpr im Code unerlässlich.
Die Einzelheiten finden Sie in der Dokumentation.
... und in einigen Community-Beiträgen
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 ) ))
)));