Script per colorare le celle in una configurazione DoEQuando si creano DoE, ogni colonna è in genere una combinazione di 2 o 3 valori diversi (valori alti e bassi e talvolta un valore centrale). Per illustrare meglio la configurazione del DoE a me stesso e ai miei colleghi, colore manualmente le celle in ogni colonna. I valori alti sono colorati in rosso, i valori centrali sono colorati in verde e i valori bassi sono colorati in blu. Sarebbe vantaggioso automatizzare questo processo di colorazione. Voglio essere in grado di eseguire uno script che colorerà le celle nelle colonne selezionate in base alla descrizione sopra.Idealmente, lo script dovrebbe essere in grado di eseguire questo processo per più colonne selezionate contemporaneamente. Qualche suggerimento su come potrebbe essere una sceneggiatura del genere?
Tabella datiDAIScriptingRi: Script per colorare le celle in una configurazione DoECome definisci basso, alto (e talvolta medio)? Ci sono sempre solo un massimo di tre valori? Dopo aver preso questa decisione, dovrebbe essere abbastanza semplice eseguire lo script utilizzando la proprietà della colonna Value Colors con i metodi menzionati qui Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute in base al codice fornito da JMP (con << ottieni colonne selezionate e ciclo)
Data Table("Untitled 10"):Column 1 << Set Property(
"Value Colors",
{1 = -15113984, 2 = -5682409}
);
Ri: Script per colorare le celle in una configurazione DoEGrazie @jthi ,
Nella maggior parte dei casi, ci sono solo due valori: un valore massimo e uno minimo. Se è un valore centrale, è la media aritmetica tra i valori minimo e massimo.Il La proprietà della colonna Value Colors è sicuramente lo strumento corretto, anche senza script. Se utilizzato su più colonne contemporaneamente, semplifica sicuramente il processo!
Ri: Script per colorare le celle in una configurazione DoEDi seguito è riportato un esempio per lo script (richiede JMP16 a causa di Transform Each() e 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);
);

Ri: Script per colorare le celle in una configurazione DoEGrazie!
Una soluzione perfetta che ha funzionato direttamente!
Questo dovrebbe effettivamente essere una parte della piattaforma DOE in JMP. Va bene se lo aggiungo alla lista dei desideri @jthi ?
Ri: Script per colorare le celle in una configurazione DoE@Steffen_Bugge certo e direi che è consigliabile scrivere nuove idee nella Wish List se ti vengono in mente