创建 DoE 时,每列通常是 2 或 3 个不同值(高值和低值,有时还有中心值)的混合。 为了更好地向我和我的同事说明 DoE 设置,我手动为每列中的单元格着色。 高值用红色表示,中心值用绿色表示,低值用蓝色表示。 自动化这个着色过程将是有益的。 我希望能够运行一个脚本,根据上面的描述为选定列中的单元格着色。理想情况下,脚本应该能够同时对多个选定的列执行此过程。 关于这样的脚本是什么样子有什么建议吗?

@Steffen_Bugge当然,我想说的是,如果您想到新的想法,建议将其写入愿望清单
谢谢!
一个完美的解决方案,直接起作用!
这实际上应该是 JMP 中 DOE 平台的一部分。 我可以将其添加到愿望清单吗@jthi ?
以下是脚本示例(由于 Transform Each() 和 For Each() 需要 JMP16)
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);
);

谢谢@jthi ,
在大多数情况下,只有两个值:最大值和最小值。 如果是中心值,则为最小值和最大值之间的算术平均值。这即使没有脚本,“值颜色”列属性绝对是正确的工具。 当同时在多个列上使用时,它肯定会简化过程!
你如何定义低、高(有时还有中间)? 总是最多只有三个值吗? 做出决定后,使用“值颜色”列属性和此处提到的方法编写脚本应该相当简单使用 Eval Insert、Eval Expr、Parse 和 Substitute 将一个表达式插入另一个表达式基于 JMP 提供的代码(使用 << 获取选定的列和循环)
Data Table("Untitled 10"):Column 1 << Set Property(
"Value Colors",
{1 = -15113984, 2 = -5682409}
);