Skript zum Färben von Zellen in einem DoE-SetupBeim Erstellen von DoEs ist jede Spalte normalerweise eine Mischung aus zwei oder drei verschiedenen Werten (hohe und niedrige Werte und manchmal ein Mittelwert). Um mir und meinen Kollegen den DoE-Aufbau besser zu veranschaulichen, färbe ich die Zellen in jeder Spalte manuell ein. Die hohen Werte sind rot gefärbt, die mittleren Werte sind grün und die niedrigen Werte sind blau gefärbt. Es wäre von Vorteil, diesen Färbevorgang zu automatisieren. Ich möchte in der Lage sein, ein Skript auszuführen, das die Zellen in den ausgewählten Spalten gemäß der obigen Beschreibung einfärbt.Idealerweise sollte das Skript diesen Vorgang für mehrere ausgewählte Spalten gleichzeitig durchführen können. Irgendwelche Vorschläge, wie ein solches Skript aussehen könnte?

VersuchsplanungBetreff: Skript zum Färben von Zellen in einem DoE-Setup@Steffen_Bugge Sicher, und ich würde sagen, dass es empfehlenswert ist, neue Ideen auf die Wunschliste zu schreiben, wenn Ihnen diese in den Sinn kommen
Betreff: Skript zum Färben von Zellen in einem DoE-SetupDanke!
Eine perfekte Lösung, die direkt funktioniert hat!
Dies sollte eigentlich Teil der DOE-Plattform in JMP sein. Ist es in Ordnung, dass ich es zur Wunschliste hinzufüge? @jthi ?
Betreff: Skript zum Färben von Zellen in einem DoE-SetupUnten finden Sie ein Beispiel für das Skript (erfordert JMP16 aufgrund von Transform Each() und 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);
);

Betreff: Skript zum Färben von Zellen in einem DoE-SetupDanke @jthi ,
In den meisten Fällen gibt es nur zwei Werte: einen Maximal- und einen Minimalwert. Wenn es sich um einen Zentralwert handelt, handelt es sich um das arithmetische Mittel zwischen den Min- und Max-Werten.Der Die Spalteneigenschaft „Value Colors“ ist definitiv das richtige Werkzeug, auch ohne Skripting. Wenn es auf mehreren Säulen gleichzeitig verwendet wird, vereinfacht es den Prozess sicherlich!
Betreff: Skript zum Färben von Zellen in einem DoE-SetupWie definieren Sie niedrig, hoch (und manchmal auch mittel)? Gibt es immer nur maximal drei Werte? Nachdem diese Entscheidung getroffen wurde, sollte es mit den hier genannten Methoden recht einfach sein, ein Skript mithilfe der Spalteneigenschaft „Wertfarben“ zu erstellen Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden basierend auf dem von JMP bereitgestellten Code (mit << ausgewählte Spalten abrufen und Schleife)
Data Table("Untitled 10"):Column 1 << Set Property(
"Value Colors",
{1 = -15113984, 2 = -5682409}
);