您可能已经看过JMP 公共以及人们在网站上分享的报告。 您可能没有听说过的是JMP 直播,JMP Public 背后的支持技术。
JMP Public 是一个供世界各地的 JMP 用户分享他们的发现并探索有趣的公共数据集的网站。 使用 JMP 14.2 及更高版本,您可以轻松地将交互式报告发布到 JMP Public 并与其他人分享您的发现,即使他们没有 JMP。
今年晚些时候,随着 JMP 15.0 的发布,我们将在私有且安全的环境中为组织的专有数据提供类似于 JMP Public 的发布功能。 JMP Server、JMP Live 和 JMP Public 之间的关系如下图所示。 但您不需要等到年底才开始提高您的出版技能。 以下是提高发布效率并帮助自动化日常发布任务的 10 个技巧。
聚苯乙烯 我不应该e 这是一篇 JSL 较多的博客文章……
聚苯硫醚 您可以在本博客文章末尾下载我带注释的已发布脚本,作为您自己的发布脚本的良好起点。
对于这 10 个技巧,我们将查看我最近向 JMP Public 发布的一份报告,该报告探讨了美国食品和药物管理局药物评估与研究中心 (CDER) 提供的有趣数据集。 查看 JMP Public 的报告:
- 了解用于创建 Web 报告以及将 JMP 报告添加到报告集合的 JSL 功能。 发布到 JMP 服务器的好处是,在发布初始报表后,发布类似报表所需的语法将是相同的。 因此,即使您不是 JSL 专家,您也可以使用我的代码轻松自动发布报告。 下面是本文所附 JSL 脚本中的代码片段。
// Create the web report element to hold the graphs and window.
webreport = New Web Report();
// Add title and description for the index page.
webreport << Index(
Title( "Biomarkers in Labels (CDER)" ),
description(
"Source: <A href="\!"https://www.fda.gov/drugs/scienceresearch/ucm572698.htm\!"" target="_blank" rel="nofollow noopener noreferrer">Table of Pharmacogenomic Biomarkers in Drug Labeling</A>"
)
);
// Add graphs using add report message. You can also add a description if required.
webreport << add report( graph1, title( "Number of Drugs Added Per Quarter by Therapeutic Area" ) );
webreport << add report( graph2, title( "Labeling Sections MCA" ) );
webreport << add report( graph3, title( "Therapeutic Area Packed Bar Chart" ) );
webreport << add report( win, title( "Links to Drug Detail Page (External)" ) );
- 当你看着我的发表的报告,您将在集合中看到一个索引页和四个报告。 在报告的脚本中,以下 JSL 函数将很有用:
- 新的网络报告() 创建一个将用于发布我的报告集合的容器。 Web 报告接受 JSL 消息来加载报告和元数据(我们将在后面讨论窗口)。 我创建报告,向索引添加信息(包括标题和描述),然后向其中添加报告。 这些报告只是 JMP 中的窗口。
- 描述()可以使用 HTML href 语法链接到其他网站。 请注意,在上面的 JSL 中,我的描述有一个指向外部网站的链接。 为了在将报表发布到 JMP Public 时使该链接正常工作,我只需在其周围添加一个链接标题。 请注意,您需要在 href 参数中使用转义括号“\!”。然后,该链接将被识别,单击后会转到适当的位置,甚至是另一个 JMP 公共报告。
- << 添加报告()让我将最终发布的报告中所需的所有图表添加到我使用构建的容器中新的网络报告() 。 如果您决定报告需要新图表,只需添加另一行、另一个添加报告并重新运行脚本即可。
- 您可以在第一次发布后通过复制包的唯一 ID 来轻松替换包。 当您发布包时,它会被赋予一个唯一的 ID。 该 ID 位于 URL 中。 如果您想将自动替换集成到脚本中,只需复制该 ID,然后将其放入发布命令中的“替换”参数脚本中,如下所示。
url = webreport << publish( prompt( ifneeded ), replace( "PASTE PACKAGE ID HERE" ), public( 1 ) );
If( !Is Empty( url ),
Web( url )
);
- 您可以通过将公众 (1|0) 添加到您的脚本中来控制您发布的报告是“为我”还是“公开”。 请注意,在上面的脚本片段中,消息中包含“public (1)”。 这使得所有人都可以获得该报告。 如果我只想要它,那么将 public (0) 就可以做到这一点。
- 如果您想要其他网站的链接列表,可以将它们收集到新窗口中。 在 CDER 数据中,我希望能够将所有药物链接回其详细信息页面。 这很容易做到,因为 URL 只是基本 HTML 参数与附加到末尾的应用程序编号的组合。 下面的 JSL 代码片段执行此操作。 基本上,我想创建一个窗口,然后循环遍历应用程序编号列。 然后该窗口将发布到我的报告集合中。
win = New Window( "Drug Information", V List Box() );
For Each Row(dt3,
applicationNum = Char(:Application Number);
drug = Char(:Drug Name);
link=(EvalInsert("http://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&varApplNo=^applicationNum^"));
button_expr = EvalInsert("\[one_button = button box("^drug^", web("^link^"), <<UNDERLINESTYLE></UNDERLINESTYLE>
- 如果您希望脚本在打开时自动运行,只需添加 //!到脚本的第一行。 非常简单,但对于发生变化的数据,这使得通过打开文件自动重新发布变得更容易,只需单击一下即可。 如果您想按计划自动发布(因为您的数据会定期更新,并且您始终希望发布的报告是最新的),请利用 MacOS X 上的 Automator 或 Windows 上的任务计划程序。
- 如果数据很大,请考虑对其进行汇总。 发布到 JMP Public 的报告对所有上传的文件都有大小限制。 您应该将此作为模型和最佳实践。由于将 JMP 报表发布到 JMP 服务器时会发布整个数据集,因此如果您可以聚合,就进行聚合。 它将使报告加载速度更快并使包更加紧凑。 对于不必要的列也是如此。 如果您不需要它们,请在您发布的数据集中删除它们。
- 如果您的交互式 HTML 报告未得到完全支持,您可以通过使用窗口 -> 登录 JMP 来确定哪些部分不起作用。 日志将列出报告中不支持交互式 HTML 的特定部分。 虽然我们的目标是在您发布报告时提供尽可能多的交互式信息,但我们并没有提供完整的覆盖范围。 但是,通常有多种方法可以重做图表或报告以删除不受支持的元素。
- 使用列标签为您发布的报告添加一些上下文。 由于已发布的报表不像 JMP 中的图表那样具有返回数据表的链接,因此适当添加标签可以帮助图表或报表的查看者在查看图表时获得更多背景信息。 通过右键单击列列表中的列并打开“标签/取消标签”选项,可以轻松地将列设为标签列。
- 仪表板很棒,但发布时不需要依赖它们。 当您将多个交互式 HTML 报表作为报表集合发布到 JMP 服务器时,您会自动获得一个有用的索引页,该索引页在许多情况下可以起到与仪表板相同的作用。 另外,如果您愿意,您还可以获得发布到集合中的每个单独报告的标题和描述的优势。 而且您对消费者可能拥有的各种屏幕尺寸(手机、平板电脑、笔记本电脑等)更加宽容。

我希望这 10 个技巧对您自己发布的脚本有所帮助。 如果您尚未尝试使用脚本将报表或报表集合发布到 JMP Public,我鼓励您下载我的示例脚本和数据作为模板。 用您自己的图表替换各个图表非常容易。 发布语法没有太大变化。 您可以利用自动化做更多事情,我希望在未来几个月内进行更多探索。
好帖子丹! 有关 #7 的更多提示,请参阅在 JMP 14 中管理交互式 HTML 输出大小