每个 JMP 平台都会生成独特的显示,但报表布局中有共同的功能和共同的对象。 JMP 报告中最熟悉的功能是大纲框。 大多数 JMP 用户可能编辑过大纲框标题或切换按钮以显示或隐藏属于该大纲框的图形和分析。
下一步是学习这些用户界面任务的 JSL 等效项,例如更改大纲框标题或切换显示图标 ◢。
编辑报表层需要两项特定技能。 一种是使用适合目标显示功能的有效 JSL 消息和语法。 另一个是找到要更改的功能的地址。 我们称之为最后一个技能导航。
显示树结构
导航几乎总是从地图开始。 运行以下脚本以生成报告。 然后,右键单击披露图标◢位于标题为“按性别对身高进行单因素分析”的大纲框左侧。选择编辑 ► 显示树结构。 (见图 6.5。)
bigclass_dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
bigclass_ht_onew = bigclass_dt << Oneway(
Y( :height ), X( :sex ), Ignore Platform Preferences( 1 ),
Box Plots( 1 ), Means and Std Dev( 1 ), X Axis Proportional( 0 ),
Mean Error Bars( 0 ), Std Dev Lines( 0 )
);
图 6.5 编辑菜单 — 显示树结构:(L) 整个报告 (R) Y 轴


树结构显示在新窗口中。 它是一个嵌套的、分层的大纲框列表(是的,是一个列表),其中每个大纲框代表报表中使用的一个 JMP 显示框。 由于选择了最顶部的显示按钮,因此会显示整个报告的树结构。 您需要向下滚动才能看到完整的树结构。 图 6.6 (L) 右键单击顶部显示按钮并选择后显示此树结构关闭以下所有内容,然后选择性地打开一些项目。
图 6.6 树结构:突出显示 FrameBox(1) 的链接报告
将树形结构窗口和单向报告对齐。 将鼠标悬停在显示按钮上框架盒(1)并查看单向报告中突出显示的相应显示。 参见图 6.6 (R)。 请注意以下列表如果框( )树中的项目。 将鼠标悬停在每个显示图标上。 如果框(1)包含显示的图形部分的轮廓。 如果框(4)对应于平均值和标准差桌子。 这如果框容器根据对象选项显示或隐藏其内容:如果指定了布尔选项,则显示;如果没有,就隐藏。
报告窗口中的每个公开图标都具有相同的用户界面。 这使得用户能够显示报告窗口的较小部分的树结构。 图 6.5 (R) 显示右键单击报告窗口功能(例如 Y 轴)会显示一个菜单(编辑 ► 显示树结构) 。 换句话说,树结构可以被请求为不仅仅是轮廓框。
关闭整个报表的树结构。 右键单击标题为“平均值和标准差”的大纲框左侧的显示按钮,然后创建树结构。 重复相同的步骤,但这次按住 SHIFT 键,同时选择显示树结构。 参见图 6.7。
图6.7单因素分析均值和标准偏差树结构 – 交互式默认格式 (L) 经典格式 (R)
两种树结构格式都显示用于排列输出的对象。 每个对象的名称中都包含单词“box”(例如,OutlineBox、TableBox、StringColBox 和 NumberColBox)。 对于这两种格式,对象的排列都是嵌套的分层结构。 交互式默认树结构 (L) 让人想起轮廓。 经典格式 (R) 让人想起组织 (org) 图表。
默认树结构的交互式突出显示对于将报表与其组件显示框匹配非常有用。 然而,它很长,并且在策略性选择的公开图标关闭之前很难辨别基本结构。 使用经典的格式树结构可以更轻松地查看报表中对象的关系。 例如,NumberColBox(6) 与 TableBox(1) 的关系在此组织结构图中是直接显示的。
两种格式都提供了丰富的信息。 有时我们会同时考虑两者。 对于任一格式,报告的一部分的树结构将比整个报告的树结构更容易阅读。
引用报表层
对分析层的更改需要将有效消息发送到平台对象或该平台的引用对象。 对于当前示例,平台是 Oneway,其句柄是变量引用bigclass_ht_onew 。
//Message to the Analysis Layer
bigclass_ht_onew << Points Jittered(1);
同样,要更改显示对象,必须向报表层发送有效消息。 将变量引用分配给报表层的两种方法如下:
//These two lines assign a variable name to the report,
//either syntax is acceptable
rpt_bc_ht_onew = Report( bigclass_ht_onew );
rpt_bc_ht_onew = bigclass_ht_onew << Report;
要更改显示功能,必须将有效消息发送到显示对象的地址。 这报告消息(或函数)返回目标显示对象的地址。 对于前面的两个例子, rpt_bc_ht_onew存储 Oneway Analysis 显示(Oneway 报表图层)的地址。 查看图 6.5 (L) 中所示的轮廓框消息。 使用报告地址、树结构中看到的框的嵌套和地址,下一组语句应该很明显:
bigclass_ht_onew << Bring Window to Front;
//line up this script and this window, run 1 line at a time
rpt_bc_ht_onew[OutlineBox(1)] << Close;
rpt_bc_ht_onew[OutlineBox(1)] << Open All Below;
rpt_bc_ht_onew[OutlineBox(1)] << Close(1);
rpt_bc_ht_onew[OutlineBox(1)] << Close(0);
每个显示对象(大纲框,表格框,字符串列框)属于一个更广泛的分类,称为展示盒。 名字大纲框(或者数字列框等)是对象的类名。 需要学习的一项关键技能是遍历树结构,本章“导航报表”部分对此进行了讨论。
JMP 可以轻松查找大多数显示框对象的有效消息。 从 JMP 脚本索引中,选择展示盒 ►大纲框。 首先,请注意图 6.5 中所示的菜单选项列表中常见的消息。 找到消息关闭。 它的描述表明该消息有一个布尔参数。 查看示例脚本获取头衔和设置标题,并运行以下 JSL 语句:
rpt_bc_ht_onew[OutlineBox(1)] << Set Title("Limit Mousing via JSL");恭喜! 您刚刚学习了 JSL 等效项来显示或隐藏以及更改大纲框的标题。
在离开本节之前,我们提供一项更有用的技能:使用消息选择和取消选择报表层部分的能力选择和取消选择。 这两条消息适用于每种类型的显示框,并且可用于突出显示显示的一部分。 这里我们在更改显示框之前使用这两条消息来测试显示框的地址是否正确。 这是来自的一个片段6_ReportLayer.jsl通过脚本延迟来查看选择过程:
rpt_bc_ht_onew[TableBox(1)] << Select;
wait(2);
rpt_bc_ht_onew[TableBox(1)] << Deselect;
rpt_bc_ht_onew[TableBox(1)][NumberColBox("Std Dev")] << Select;
wait(2);
rpt_bc_ht_onew[TableBox(1)][NumberColBox("Std Dev")] << Deselect;
最后一对选择和取消选择statements 是报表导航的预览,这在“导航报表”部分中进行了描述。要选择的显示框的位置可以通过从报表顶部开始,然后向下移动到桌盒(1) 。 内桌盒(1)下属,你会发现数字列框贴上标签标准差。
生成报告并查找显示框对象的有效消息非常简单:使用脚本索引为了展示盒。 浏览简单的报告也很简单。 但是,还有更多东西需要学习,并且当报告更复杂或分析涉及许多 Y、X 和 By 列时,导航可能会变得很棘手。 下一节“显示框脚本”推荐了一个阅读列表来处理一长串的显示框及其消息。
该博客的内容是从我们的书中摘录而来的, JSL Companion:JMP® 脚本语言的应用,第二版,您可以在其中找到更多使用 JMP 脚本语言的技术和示例。