使用展示盒

在本演示中,我们将了解报告层中显示框的组织方式,并了解如何访问这些显示框的内容。在课程日志部分,我将点击“固化时间数据”。我将使用双变量平台中的两个“固化时间”列,对“固化时间”数据进行简单的相关性分析和简单线性回归分析。我们将了解如何使用“选择”工具来探索报告并理解该报告层。我将转到“分析”菜单,选择“以 X 拟合 Y”。我将“固化时间”设置为 Y 轴,将“固化时间”设置为 X 轴,然后单击“确定”。然后,我将转到“双变量拟合”旁边的红色三角形,并选择“密度椭圆”。我将使用该选项。然后回到顶部的红色三角形菜单,选择“拟合线”。这样我们就得到了显示树的许多组成部分。因此,我们可以交互地使用“选择”工具来选择报告的各个部分。我们实际上是在选择显示框。如果我打开菜单和工具栏,我可以直接看到一个白色的大加号,或者你可以输入一个“S”来表示“选择”工具,或者你可以进入“工具”菜单。这样我的光标就会改变。如果我想选择这个图表,你可能会认为只需点击它的中间即可。但实际上我只能看到框架框,它是构成报表这一部分的显示框之一。所以,我可能会想,哦,好吧,我必须点击它外面。然后我就会看到一个访问框,它又是构成报表这一部分的另一个显示框。所以,当我以交互方式执行此操作时,我可能需要尝试将光标完全移到最边缘才能显示该图表的所有组件,尽管我没有图例。但如果我想要的话,我也可以显示图例。我还可以选择大纲项目。所以我要点击“披露”按钮。即使在使用“选择”工具时,我也可以点击它。大纲显示按钮仍然会响应。但我现在可以使用“选择”工具来选择整个大纲项,或者如果我可以再次点击它,可以取消选择——选择该大纲项中的单个列。在编写报表层脚本时,您可能需要使用“选择消息”(它将以交互方式执行与“选择”工具相同的操作),以确保在开始提取值之前,您瞄准的是报表层的正确部分。因此,我将切换回箭头光标。我可以转到工具栏,或者直接输入“A”。我们有一个方便理解显示树的功能,那就是名为“显示树结构”的菜单选项。我将以二元正态椭圆为例进行分析。由于此大纲项上没有红色三角形菜单,我可以右键单击它。如果我想获取整个报表的树结构,那么顶部的大纲项(因为它有一个红色三角形菜单)如果我右键单击它,就会显示红色三角形菜单。如果我想要查看整个树形结构,我会右键单击“披露”按钮。但那是一个非常大的树形结构。所以我更喜欢使用单个报告表。当然,如果我想了解这张图的树形结构,我必须转到顶层。但对于二元正态椭圆轮廓项,我会右键单击,然后在“编辑”下选择“显示树形结构”。让我将它并排移动。所以这只是轮廓项,显示了构成树形结构这一部分的各种显示框。一个很棒的功能是它与报告窗口相连,这样当我将鼠标悬停在树形结构中的各个组件上时,它们就会突出显示,就像您在表格中看到的那样。这是确保我正确定位所需显示框的另一种方法。所有这些显示框都只有索引值,尽管轮廓框也包含名称。我们将看到如何使用比索引值更多的信息来定位这些项目。首先,让我们获取脚本来重新创建此报告,然后获取报告层对象引用。我将关闭树形结构窗口,转到“双变量拟合”旁边的红色三角形,然后选择“将脚本保存到脚本窗口”。然后我将继续调整其大小。您在这里看到的是“SendToReport”,这是因为我展开了“双变量正态椭圆”轮廓项。因此,您可以看到那里有一个带有布尔值的“Close”。如果您只是想再次运行它而不打开它,您可以删除它。我将保留它。现在我有了一个重新创建此报告的脚本,我想关闭原始报告,因为我不想将它与创建此双变量对象实例时生成的报告混淆。因此,在脚本的顶部,我将把分析层对象引用(启动平台的结果)存储在变量 biv 中。因此,我分配了它。我在这里只使用当前数据表的简写,然后发送消息——哎呀,我不需要输入这个,对吧?因为我已经写好了那个脚本。然后我会运行这个脚本。这样就会启动这个新的双变量对象。然后,在脚本编辑器的最后一行,我将获取该报告层对象引用。我会将它存储在变量 rbiv 中。我会将 biv 接收消息“Report”的结果赋给它。记住,还有一种替代语法,Report 实际上在名称后用括号括起来的 biv 作为参数。我们将在接下来的演示中看到这个示例。所以我只想运行这一行。现在,注意 rbiv 中存储的内容。我们在 biv 中存储了平台名称。但在 rbiv 中,我们只有 DisplayBox[OutlineBox]。所以我没有那么多细节。我只知道它是哪种显示框。但这就是报告层的对象引用的样子。现在,在我做其他事情之前,我想注释掉一些行,因为我不想意外地重新运行脚本,打开一个包含双变量拟合的新窗口,然后关闭错误的窗口,这样我就关闭了当前存储在 biv 中的窗口。我以前也这样做过。然后,当然,它不会响应消息,因为它不再打开了,即使另一个窗口已经打开了。选择完所有选项后,我将右键单击。在“高级”下,我将选择“注释块”。我要注意的是,由于脚本编辑器中注释的内容之后没有其他行,所以它使用了以正斜杠星号开头,以星号正斜杠结尾的语法。如果还有其他行,它会在每一行分别用两个正斜杠进行注释。但我仍然可以再次选中它们,然后右键单击即可一次性取消所有注释。所以它不需要那么宽,但我希望它稍微高一点。我会把它移到一边。然后把二元窗口移到它外面。我会换行。实际上,让我在报告窗口中右键单击“二元正态椭圆”,选择“编辑”,然后选择“显示树形结构”。这是轮廓框。当我给rbiv添加下标时,我可以选择只使用该索引值。轮廓框,然后在括号中,我将发送“选择”消息。这就是我编写脚本来代替使用“选择”工具的方法。我只需运行该代码即可。您可以看到轮廓框已被选中。现在,如果这是我想要定位的轮廓项,我不想一直选中它。我只需使用“选择”来验证我指向的位置是否正确。我要发送“取消选择”消息,运行该行,这样就可以取消选择它。假设我想深入到均值列。这样我就可以添加另一个下标,并将消息改回“选择”并运行。这样就选中了均值列。现在,还有什么其他更明确的方式可以引用这些显示框呢?不用调用它,我实际上可以使用轮廓的名称。事实上,这替换了这里的整个下标。它说“我只需提供字符串”。这是一个长字符串。所以我要使用通配符。我在这里打开双引号,然后输入“双变量正态分布”。我只需要输入单词“椭圆”,然后输入问号,这样我就不必指定P等号了。我会关闭这些双引号。然后,对于数字列框,也许可以不用索引值,因为那里有一个列标题——与拟合度汇总不同,我必须在这里使用索引值。但是那里有一个名为“均值”的列标题。所以我要替换“均值”。我仍然需要说它是一个数字列框。但我要用字符串“均值”替换“均值”。然后,我将消息更改为“取消选择”。运行该行,效果也很好。事实上,我推荐这种语法,因为它非常明确地说明了我们正在查看哪个轮廓框,以及我们正在查看哪一列。让我们在参数估计的上下文中看一下。我将从“二元正态椭圆”窗口关闭树状结构,然后右键单击“参数估计”,转到“编辑”,“显示树状结构”。因此,对于第一个下标,我将用“参数估计”替换该字符串的内容。假设我想要估计值的列。好吧,如果我使用名称(这再次强调,这是我们在有列标题时推荐的最佳做法),并发送“选择”消息,效果会非常好。这就是我向你们展示这个例子的原因。如果我查看树形结构,估计值列是……那么,如果我指定并尝试取消选择该列会发生什么?嗯,我会收到一个错误——无法下标显示框以及访问或评估rbiv等等。它并没有给我提供大量信息。但我根据经验知道,这意味着一旦我指向参数估计值的大纲项,列框的计数就会在该大纲项中重新开始。所以这实际上是在参数估计值中。如果我现在运行这个程序,它会起作用。如果我想简单地将其作为rbiv的唯一下标,那也是可以的。所以有很多不同的下标方法。但再次强调,我们建议尽可能明确地使用大纲项名称,如果有列标题——让我把“估计值”列标题放回这里——使用它来确保我们编写的脚本能够适应显示树结构的变化。这些变化可能是 JMP 的新版本带来的,也可能是由于用户的偏好设置,例如在感兴趣的表格上方显示报表,并更改这些列框或其他显示框的编号。因此,只要我们可以使用大纲项名称和列标题,我们就应该这样做。现在,选择和取消选择只是为了开发。在某些时候,我可能真的想获取这些值。我想检索参数估计值,并可能将它们存储在一个变量中。我不会在这里这样做,但你当然可以,这可能就是你想要做的。所以,如果我简单地将消息“get”发送到报表层的下标部分,返回的是一个包含这两个值的列表。我可以将该消息改为“获取矩阵”,返回的就是这些值的矩阵。那么,如果我不关心截距呢?我只想要斜率的估计值。我想要第二个值。一种方法是发送带有括号的“获取”消息,然后运行该消息,只需检索第二个值即可。一种更优雅的方法是根本不发送消息,但是一旦我们深入到参数估计概要项(即估计列框),我就可以再次下标并请求该列中的第二个项,这将返回相同的结果。因此,访问显示框的过程可以是将 Report 作为消息发送到存储分析层对象引用的变量,也可以将存储分析层对象引用的变量包装在 Report 中。然后,我们使用下标来访问显示树的组件。下标有很多不同的方法。最佳实践是在下标时尽可能明确。
回复:使用展示盒很有帮助。在矩阵中添加通配符的功能特别有用。