为网络带来与客户习惯相同的交互性JMP ,数据必须与代码一起导出,才能在交互式 HTML 中创建丰富的图形。 我们警告客户,共享交互式 HTML 报告确实会将他们的数据发布到网络上,但随着越来越多的 JMP 功能被添加到输出中,您可能没有意识到这些文件的大小也在持续增长。 只有一部分输出是数据,需要额外的内容来呈现您在屏幕上看到的表格、文本和图像。
在 JMP 13 中,添加了 Graph Builder,现在添加了JMP 14 中的数据过滤器,越来越大的数据表部分嵌入到 HTML 输出中。 为了管理文件大小,我们在 JMP 14.1 中引入了几个新功能:压缩和无数据保存的能力。
压缩数据
首先,压缩仅应用于报告的数据。 结果因数据的类型和内容而异;重复字符串数据压缩得最好,随机数字数据压缩得最差。 基准数据集表明,对于某些平台,输出大小几乎没有减少,但 Graph Builder 等平台可以看到 HTML 文件的大小减少多达 68%。 我们对文件大小已经很小的非常小的数据集(少于 50 行)进行了例外处理。 这会自动发生,无需您设置首选项。
不公布数据
如果您想防止数据被导出,但仍想以网络友好的格式捕获一些结果,则第二个功能可能很有用。 在JMP 14 ,您可以使用发布文件下的菜单选项。 14.1 中的新功能是不发布数据的选项,方法是取消选中发布数据选择报告对话框上的复选框:
Figure 1: By unchecking the Publish Data checkbox, no data will be exported, just static images.图 1:取消选中 Publish Data 复选框,将不会导出任何数据,只会导出静态图像。
这将生成具有交互式 HTML 页面样式的报告——可折叠部分、带有悬停标签的表格等,但所有图表都是静态图像。 这对于想要显示几个图表但不想以文本格式输出数千行的非常大的数据集非常有用。 请注意,如果静态图像太多,或者它们的尺寸太大,您最终可能会得到一个很大的文件。 这对于非常大的数据集上的几个小图最有效。
还有一些提示
我们经常被问到的另一个问题是:“如何使我的交互式 HTML 输出更小?”所以我想分享一些技巧和策略来生成交互式图表并最小化它们的大小。 只需避免导出您不需要的任何数据。
- 标记的列– 在 JMP 中标记列非常棒,因为它会使列出现在交互式 HTML 提供的工具提示中,使您无需访问完整数据表即可探索有关观察的其他信息。 但是,这意味着正在导出一个额外的列,如果未将其分配给图表中的视觉角色,则不需要该列。如果您不关心在工具提示中看到它,请通过右键单击 JMP 数据表中的列名并选择“Label/Unlabel”来取消标记以节省空间。
Figure 2 : Height and weight columns are needed in the data section since they are Y and X respectively, but name is labelled only to make it appear in the tooltip. Unlabel it if knowing the name associated with each point is not important to your audience.图 2:数据部分需要高度和体重列,因为它们分别是 Y 和 X,但名称仅被标记以使其出现在工具提示中。 如果知道与每个点关联的名称对您的听众来说并不重要,请取消标记它。
- 图片– 图像列在您的工具提示中看起来令人印象深刻,特别是如果它们提供价值,但如果它是不支持图像工具提示的图表,请忽略这些列。 从 JMP 14.1 开始,只有标记、线条、热图、地图和气泡图支持在其工具提示中显示图像。 取消选中时发布数据可以让您免于导出数据,图表将全部变为静态图像,并且交互式 HTML 输出中的太多图像也会使文件变大。 此外,如果不支持的功能以图像形式出现,请考虑它是否真正为查看者带来价值,或者是否有办法在导出前通过红色小三角菜单或 JSL 脚本关闭报告的该部分。
Figure 3: Markers are one of only a few visual elements that will display images in their tooltips. Do not include or label image columns if you don't want to display them or the graph type doesn't support them.图 3:标记是少数会在其工具提示中显示图像的视觉元素之一。 如果您不想显示它们或图形类型不支持它们,请不要包含或标记图像列。
- 数据子集– 有多种方法可以在 JMP 中分解您的数据,以便一次只查看其中的一部分。 但是,如果您希望能够过滤数据,则必须导出整个数据集。 例如,如果您有一个包含 10,000 行的数据集,并使用显示 100 行的 where 子句创建了一个图形,您仍会导出所有 10,000 行。 如果您真的只对这 100 行感兴趣,而不打算让报表的查看者过滤或查看数据集的其余部分,那么最好创建数据的子集在创建图表之前禁用“链接到原始数据表”。
我们已经听到了您的担忧,并采取了措施来缩小我们交互式 HTML 输出的大小。 交互性和新功能的权衡是值得的。 探索我们支持的许多平台交互式 HTML 示例页面.