表格中的数据条你好,
是否可以像在 Excel 中那样在 JMP 数据表中添加数据条?我能想到的最接近的方法是使用列中的颜色渐变属性,但我更喜欢数据条。

数据探索与可视化回复:表格中的数据条最简单的方法是使用 Tabulate

或 Table Box() 与 Col Plot Box()

回复:表格中的数据条距离“在 JMP 数据表中”相当远;)
回复:表格中的数据条您还可以尝试使用不同的显示框,然后使用 << 获取图片。例如,对于 Big Class JMP 表,使用以下公式(表达式数据类型)
Eval(
Eval Expr(
Graph Box(
Frame Size(Col Max(:weight) * 10, 300),
Y Scale(0, 100),
X Scale(0, Expr(Col Max(:weight))),
Fill Color("Red");
Rect(0, 100, Expr(:weight), 0, 1);
Text Color("Black");
Text Size(200);
Text(Center Justified, {Expr(:weight / 2), 20}, Expr(Char(:weight)));
)
)
) << get picture
你最终会得到类似的东西

回复:表格中的数据条哇!
回复:表格中的数据条很难找到:抑制斧
什么是doubleBuffer?

回复:表格中的数据条另外,如果您不需要条形图内的文本,可以使用间隔框 (Spacer Boxes) 代替图形框 (Graph Box)。下面是一个快速且非常实用的示例(等我有更多时间思考这个问题后,我会写出更好的版本)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("R", Expression, None, Formula(
As Constant(
left_color = "Red";
right_color = "Green";
minval = Col Min(:Weight);
maxval = Col Max(:Weight);
scaling = (maxval - minval) / 300;
If(minval >= 0,
minval = 0;
);
If(maxval <= 0,
maxval = 0
);
);
If(:Weight >= 0,
right = :Weight;
right_filler = maxval - :Weight;
left_filler = Abs(minval);
left = 0;
,
left = Abs(:Weight);
left_filler = Abs(minval) - left;
right_filler = maxval;
right = 0;
);
H List Box(align("Center"),
Spacer Box(Size(1, 20), Color("Black")),
Spacer Box(Size(left_filler * scaling, 20), Color("White")),
Spacer Box(size(left * scaling, 20), color(left_color)),
Spacer Box(Size(1, 20), Color("Black")),
Spacer Box(size(right * scaling, 20), color(right_color)),
Spacer Box(Size(right_filler * scaling, 20), Color("White")),
Spacer Box(Size(1, 20), Color("Black"))
);
));

具有负值:

此外,如果您希望在 JMP 中拥有这样的功能,请在JMP 愿望清单中创建帖子。
回复:表格中的数据条哇,速度快了好几个数量级!
回复:表格中的数据条我本来想编辑我之前的帖子,但是这个新的社区布局让用户体验比以前更糟糕......所以我将创建新消息(我本来想在 JSL 中添加剧透标签)

/*""" Create databar column function
Author: jthi
Creation Date: 2025-10-18
Creation JMP Version: JMP Pro 18.2.1
"""*/
Names Default To Here(1);
add_databar_column = function({dt, colname, leave_formula = 1}, {Default Local},
newcol = Eval(Substitute(
Expr(dt << New Column(colname || " Data Bar", Expression, None, Formula(
As Constant(
left_color = -15775706; // pinkish
right_color = -11393916; // light green
minval = Col Min(_colref_);//, Excluded());
maxval = Col Max(_colref_);//, Excluded());
If(minval >= 0,
minval = 0;
);
If(maxval <= 0,
maxval = 0
);
scaling = (maxval - minval) / 100;
);
If(_colref_ >= 0,
right = _colref_;
right_filler = maxval - _colref_;
left_filler = Abs(minval);
left = 0;
,
left = Abs(_colref_);
left_filler = Abs(minval) - left;
right_filler = maxval;
right = 0;
);
bb = Border Box(Top(2), Bottom(2), Sides(15),
H List Box(align("Center"),
Spacer Box(Size(left_filler / scaling, 13), Color("White")),
Spacer Box(size(left / scaling, 13), color(left_color)),
Spacer Box(size(right / scaling, 13), color(right_color)),
Spacer Box(Size(right_filler / scaling, 13), Color("White")),
),
<< Backgroundcolor("White")
);
))),
Expr(_colref_), Name Expr(AsColumn(dt, colname));
));
If(!leave_formula,
dt << Run Formulas;
newcol << Delete Formula;
);
newcol << Set Display Width(110);
return(newcol);
);
/*
// Example
dt = open("$SAMPLE_DATA/BabySleep.jmp");
add_databar_column(dt, "Awake");
add_databar_column(dt, "Asleep");
add_databar_column(dt, "Dif");
*/