Bonjour la communauté JMP,
J'ai écrit un script simple pour attribuer un dégradé de couleurs aux colonnes à valeurs continues en fonction du quantile 0,05 des valeurs des colonnes.
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)})
);
Bien que l'attribution des couleurs correctes fonctionne, JMP renvoie une erreur lorsque je modifie ensuite le dégradé manuellement (voir ci-dessous) :

J'ai donc besoin d'une méthode pour transmettre les valeurs de la plage de dégradé sans déclencher d'erreur lors des modifications manuelles ultérieures.
Merci.
Meilleur,
TS
Il vous manque l'évaluation de l'expression.
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)}
)
));
);