Script para colorear celdas en una configuración DoEAl crear DoE, cada columna suele ser una mezcla de 2 o 3 valores diferentes (valores altos y bajos y, a veces, un valor central). Para ilustrar mejor la configuración del DoE para mí y para mis compañeros de trabajo, coloreo manualmente las celdas de cada columna. Los valores altos son de color rojo, los valores centrales son de color verde y los valores bajos son de color azul. Sería beneficioso automatizar este proceso de coloración. Quiero poder ejecutar un script que coloree las celdas en las columnas seleccionadas de acuerdo con la descripción anterior.Idealmente, la secuencia de comandos debería poder realizar este proceso para varias columnas seleccionadas simultáneamente. ¿Alguna sugerencia sobre cómo podría verse un script de este tipo?
Tabla de datosGAMAsecuencias de comandosRe: Script para colorear celdas en una configuración DoE¿Cómo defines bajo, alto (ya veces medio)? ¿Hay siempre un máximo de tres valores? Después de tomar esa decisión, debería ser bastante simple usar la propiedad de la columna Value Colors con los métodos mencionados aquí. Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute basado en el código proporcionado por JMP (con << obtener columnas seleccionadas y bucle)
Data Table("Untitled 10"):Column 1 << Set Property(
"Value Colors",
{1 = -15113984, 2 = -5682409}
);
Re: Script para colorear celdas en una configuración DoEGracias @jthi ,
En la mayoría de los casos, solo hay dos valores: un valor máximo y un valor mínimo. Si es un valor central, es la media aritmética entre los valores mínimo y máximo.Él La propiedad de la columna Value Colors es definitivamente la herramienta correcta, incluso sin secuencias de comandos. ¡Cuando se usa en múltiples columnas simultáneamente, ciertamente simplifica el proceso!
Re: Script para colorear celdas en una configuración DoEA continuación se muestra un ejemplo del script (requiere JMP16 debido a Transform Each() y For Each())
Names Default To Here(1);
If(Is Empty(Current Data Table()),
Throw("No tables open.");
, // else
dt = Current Data Table();
);
sel_cols = dt << Get Selected Columns();
If(N Items(sel_cols) == 0,
Throw("No columns selected");
);
// color "globals", fairly free to choose which type of "JMP Color" to use
LOW_COLOR = 67;
MIDDLE_COLOR = -13948116;
HIGH_COLOR = "Light Green";
For Each({col_ref}, sel_cols,
col_name = col_ref << get name; // I don't like using :COLNAME format at all
// get values in column
// Associative Array seems to have a bug so we use Summarize
Summarize(dt, val_strs = By(Column(col_name)));
// Summarize returns list of characters, so we will convert them to numbers
vals = Transform Each({val}, val_strs, Num(val));
min_val = Remove From(vals, 1)[1];
max_val = Remove From(vals, -1)[1];
// This method should be fairly robust, but it does looks complicated
weird_jmp_list = {};
Eval(Substitute(Expr(
Insert Into(weird_jmp_list, Expr(_value_ = _color_))
),
Expr(_value_), min_val,
Expr(_color_), LOW_COLOR
));
Eval(Substitute(Expr(
Insert Into(weird_jmp_list, Expr(_value_ = _color_))
),
Expr(_value_), max_val,
Expr(_color_), HIGH_COLOR
));
// color rest with middle color
For Each({val}, vals,
Eval(Substitute(Expr(
Insert Into(weird_jmp_list, Expr(_value_ = _color_))
),
Expr(_value_), val,
Expr(_color_), MIDDLE_COLOR
));
);
Column(dt, col_name) << set property( "Value Colors", weird_jmp_list) << Color Cell By Value(1);
);

Re: Script para colorear celdas en una configuración DoE¡Gracias!
¡Una solución perfecta que funcionó directamente!
En realidad, esto debería ser parte de la plataforma DOE en JMP. ¿Está bien que lo agregue a la lista de deseos? @jthi ?
Re: Script para colorear celdas en una configuración DoE@Steffen_Bugge seguro y diría que es recomendable escribir nuevas ideas a Wish List si te vienen a la mente