好吧,让我们从一开始就解决一些问题。 笑话太多了……所以非常多我可以就这个话题开一些笑话。 但是,我不会做它们。 我要走高路。 不是因为我想这样做,如果你读过我的其他文章,你就会知道我喜欢双关语和老掉牙的笑话。 不,我要走正路,因为我有理由相信我的编辑不会同意我把这篇文章变成一系列俏皮话。 所以,让我们都深吸一口气,让内心的孩子早点上床睡觉,并尽量保持本文的其余部分专业(即使这些东西的替代名称是“Booz Balls”)。
根据维基百科,哈维球是“用于定性信息视觉传达的圆形表意文字”。 也就是说,它们是人们用来告诉其他人表格和仪表板中的一般信息的小圆圈。 它们的外观如下:

他们在项目管理和持续改进圈子中随处可见。 在某种程度上,它们类似于迷你图因为它们旨在向观众传达高级信息。 不过,就哈维球而言,它们会显示任务进度、排名(好、更好、最好)等。
那么,我们如何在 JMP 中制作它们呢? 事实证明,这个问题的答案与大多数问题的情况一样联合管理计划,是:有多种方法可以做到这一点,并且它们都在某种程度上涉及列属性。 这里它们按照我认为您熟悉实现它们所需的技术的可能性的粗略顺序排列。
使用列属性:值标签
解决这个问题最简单的方法可能是使用值标签。 您可以通过将范围分配给代码值或直接使用值范围来完成此操作。 我将向您展示这两个选项,因为它们基本上是相同的过程。 我在下面添加了一个表格,其中包含百分比范围、我正在使用的代码值和符号。 如果您自己执行此操作,则可以复制并粘贴表中的符号。 它可以节省您在操作系统实用程序中寻找小符号小部件的时间。
| 范围 |
编码值 |
哈维·鲍尔 |
| 0% <= x < 25% |
0 |
○ |
| 25% <= x < 50% |
1 |
◔ |
| 50% <= x < 75% |
2 |
◑ |
| 75% <= x < 100% |
3 |
◕ |
| 100% <= x |
4 |
● |
在这两种情况下,设置列属性以显示 Harvey Balls 如下。
- 右键单击包含进度信息的列的列名称
- 选择列属性 > 值标签。 JMP 将向您显示该列的“列信息”窗口,其中添加了“值标签列属性”并准备好进行数据输入。

- 将光标放在值字段中,然后输入符号的编码值。要标记范围,只需单击允许范围复选框,然后输入范围的开始值和结束值。
- 将表中的适当符号复制并粘贴到标签字段中。
- 按 Enter 键(这应该将值标签分配添加到“值”字段上方的列表中,并将光标返回到“值”字段)。
- 继续该过程,直到添加所有符号。
- 单击“确定”将更改应用到列并关闭“列属性”窗口。

有趣的事实:此过程适用于表字体支持的任何 Unicode 字符,这意味着您可以根据需要在数据表中放入一些复活节彩蛋。 :书呆子脸:

现在您可能已经注意到符号大小有点奇怪。 这和字体有关系。 我做了一些研究,大多数字体都有这个问题。 好消息是,将表格导出到 PowerPoint 可以解决该问题,并且所有内容都清晰可见。 因此,“值标签”选项最适合在您要将内容导入 PowerPoint 时使用。
现在,如果您想在 JMP 中完成所有操作该怎么办? 好吧,正如文章标题所说,还有更多选择。 他们在 JMP 数据表中制作了漂亮的 Harvey Balls。 与第一种方法一样,它们都使用列属性,但涉及的范围更广一些。
使用列属性:公式
这是关于 JMP 公式的一个肮脏的小秘密:它们实际上是 JSL 代码。 公式编辑器使 JSL 看起来不那么令人生畏,但在幕后,您正在使用 JSL 进行编码。 这意味着一般来说,您可以在公式编辑器的脚本中执行许多相同的操作。 这也意味着我们可以通过在公式中使用一点 JSL 来解决字形的一些大小问题。
在您因我建议编写脚本而停止阅读之前,代码已全部为您编写! 您只需将其粘贴到公式列中即可。 另外,我还要感谢@brady_brady ,谁想出了这个主意。
要使用此方法生成哈维球,请执行以下操作:
- 在数据表中创建一个新列。
- 右键单击列名称并选择公式。
- 将下面的 JSL 粘贴到公式编辑器中,方法是复制下面的 JSL,单击“无公式”框以使其突出显示为蓝色,然后使用 CTRL-V(对于 mac 用户则使用 CMD-V)粘贴公式。 它应该看起来像这样:

- 在编辑器中,拖动包含百分比信息的列(公式@brady_brady made 仅适用于百分比)以替换公式编辑器中各处的“百分比”列名称。 一共有三个,我在下面的屏幕截图中突出显示了每个,这样您就不会错过任何一个。

- 单击“确定”。

HB = Words( "○,◔,◑,◕,●", "," );
If( Floor( Min( :Percent * 4, 4 ) ) + 1 == 3,
txt = Text Box(
HB[Floor( Min( :Percent * 4, 4 ) ) + 1],
<<SET font="" size=""></SET>
让我们花点时间回顾一下这个 JSL 正在做什么,因为它非常灵活。 它首先创建一个名为 HB 的列表,其中包含 Harvey Balls 的字形。 然后,它运行 if 语句来检查正在调用哪个字形,并对太小的字形应用字体大小修正。 然后它创建一个显示在数据表中的图片。
当您在 JMP 数据表中查看 Harvey Balls 或从数据表创建日记帐时,此方法非常有用。 它还可以让您对 Harvey Balls 的大小、字体等进行大量控制。 但是,由于它依赖于表达式列中的图片,因此它不能很好地转换为 PowerPoint 文件。
使用虚拟连接和查找表
之所以采用这种方法,是因为我还没有遇到很多广泛使用虚拟连接的人——这很遗憾。 我认为,除了基础知识之外,虚拟连接应该是人们在 JMP 中需要掌握的最重要的事情。 他们可以做很多事情。
在本例中,我使用带有查找表的虚拟联接(例如 V-Lookup,Excel 用户)来为列创建 Harvey Balls。 我已经创建了查找表(简称 LUT)。 在这种情况下,您只需要有一列包含编码值,如值标签示例中所示。 程序如下:
- 打开 LUT 表。
- 转至您正在处理的 JMP 表。
- 右键单击具有 Harvey Ball 编码值的列名称。
- 选择链接参考 >(LUT 的文件路径) 。 数据表现在将有一个隐藏的数据列。

- 右键单击数据表窗口左侧列列表中的隐藏列
- 选择隐藏/取消隐藏


与前一种方法一样,当您在 JMP 数据表中使用 Harvey Balls 时,此方法效果很好。 它还具有能够快速生成 Harvey Balls 的优点,并且所有列都引用相同的 LUT。 这意味着对 LUT 的更改将自动传播到引用它的所有列。
怎么办?
好的,现在您已经制作了 Harvey Balls,通常需要将它们从 JMP 中取出来进行展示。 这通常涉及 PowerPoint。 那么,你该怎么做呢? 最简单的方法是从数据表创建日志。 只需选择要导出为表的行并使用 CTRL+J(在 Mac 上为 CMD+J)。 这将创建一个日记帐,其中包含选定的行作为表格。 从那里,可以通过选择轻松导出到 PowerPoint文件 > 另存为... (文件 > 导出在 MacOS 中)。
就是这样。 哈维·鲍尔以三种方式。 现在,请放心地走开,告诉所有你一直憋在心里的俏皮话吧。
更新(2019/6/13)
@Craige_Hales在他的文件中写了一些 JSL神秘海域博客展示了如何解决字体问题并临时派生分数 Harvey Balls。 他的方法还添加了一些格式化选项,并展示了如何从 JSL 中构建 HTML 包装器。 这是一本好书。