Hallo JMP-Community,
Ich habe ein einfaches Skript geschrieben, um Spalten mit kontinuierlichen Werten einen Farbverlauf basierend auf dem 0,05-Quantil der Spaltenwerte zuzuweisen.
Names Default To Here(1);
dt = current data table ();
scol = dt << Get Selected Columns ();
For (i = 1, i <= N items (scol), i++,
column (dt, scol[i]) << Format("Fixed Dec", 12, 3);
low_mark = Col Quantile(column (dt, scol[i]), 0.05);
high_mark = Col Quantile(column (dt, scol[i]), 0.95);
if(abs(low_mark) > high_mark, bound = -low_mark, bound = high_mark);
range_list = {-bound, bound, 0};
column (dt, scol[i]) << Set Property ("Color Gradient",
{"Blue White Red", Range (Eval list (range_list)),
Color cell by value (1)})
);
Obwohl die korrekten Farben zugewiesen werden, gibt JMP eine Fehlermeldung aus, wenn ich den Farbverlauf anschließend manuell bearbeite (siehe unten):

Daher benötige ich eine Methode, um die Werte des Farbverlaufsbereichs zu übergeben, ohne dass bei nachfolgenden manuellen Änderungen ein Fehler ausgelöst wird.
Danke schön.
Am besten,
TS
Es fehlt die Auswertung des Ausdrucks.
Names Default To Here(1);
dt = Current Data Table();
scol = dt << Get Selected Columns("String");
For Each({colname}, scol,
Column(dt, colname) << Format("Fixed Dec", 12, 3);
low_mark = Col Quantile(Column(dt, colname), 0.05);
high_mark = Col Quantile(Column(dt, colname), 0.95);
If(Abs(low_mark) > high_mark,
bound = -low_mark,
bound = high_mark
);
range_list = Eval List({-bound, bound, 0});
Eval(EvalExpr(
Column(dt, colname) << Set Property(
"Color Gradient",
{"Blue White Red", Range(Expr(range_list)), Color cell by value(1)}
)
));
);