设为首页收藏本站

JMP数据分析论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 214|回复: 0

新冠肺炎疫情可视化报表自动发布实战技巧

[复制链接]
发表于 2020-2-17 11:42:37 | 显示全部楼层 |阅读模式
在上周我们发布的《如何用JMP让新冠肺炎疫情的可视化清晰地共享可见》文章中,我们向大家展示了经由JMP Live或其免费公共预览版JMP Public发布报表的常规流程。

尽管其手动发布过程简单明了,但是相信广大JMP拥趸不禁要问,当下的疫情动态更新至少以天来度量,而企业运营相关的一些报表更是以小时来刷新,如果每次发布都是以手动形式实施的话,除了后台数据和报表与时俱进外,发布操作本身未免重复、琐碎且低技术含量。那么,是否存在更智能的发布方案将朕从低附加值的工时中解放出来,投入到具有更高附加值的工作中去呢?答案是肯定的。本期我们就向大家介绍一些通过JMP Public自动发布报表的小技巧,希望可以帮助大家提高效率。

首先,仍然需要声明的是:

  • 这是一篇“轻度JSL癌”的文章,但我们会侧重阐述其编写逻辑和重点,尽量不造成大家的阅读障碍和不适。
  • 如果你能理解下面的JSL基本语法结构,那么你理解本文其实并不困难。object << Message (Argument);   /* 即向某对象(obj)发送(<<)某指令或信息(Message) */之所以选择JMP Public为载体进行讲解,在于广大读者并非JMP Live的正式用户,因此无法实战体验。而与JMP Live相对应的脚本编写将在此基础上增添一些保密性设置,但总体框架逻辑与本文趋同。*.

注:JSL,即JMP Scripting Language,是JMP独有的脚本语言。



图-1 JMP Public发布效果图


我们直接给出发布该JMP Public报表的JSL参考模板框架如图-2所示,各语句职能参见绿色备注信息。





图-2 JMP Public发布报表的JSL模板框架

接下来,除了绿色备注信息外,我们对其中的一些要点语句做些补充说明:
1  Include (“*.jsl”)相当于一个引用或调用语句。无论是经由JMP Live或JMP Public发布报表,还是经由其他途径发布报表,前提都是我们生成了这些待发布的报表,而这里括号中的*.jsl就是用于生成这些报表的脚本。而从数据源到生成所需报表的脚本可长可短,因此,我们把这段略去以简化脚本结构,使大家能够更清晰地窥见JMP Live或JMP Public发布脚本的总体逻辑框架。若将图-2中的*.jsl局部展开,他们大致长成下图这个样子(图-3),白话直译的话,其核心功能就是用“图形生成器”画了一张图,并将这张图形报表命名为gb01。如果想深入了解这部分脚本编写技巧的话,也欢迎你参与下周的JMP精学课堂之《JMP脚本语言基础介绍》来一窥究竟。


图-3 生成“中国疫情地图”的JSL脚本


2 New Web Report ()简单地说,New Web Report ()就是个筐,啥都可以尝试往里装。该容器用于承接待发布报表及其相关元素集合,如可向其添加索引信息(标题和描述等)和各种不同类型报表。

3 Index ()设定Web报表的标题和描述等索引信息。其中,description ()可以使用HTML href语法链接到其他网站。在图-2的JSL中,描述包含指向中国国家卫生健康委员会官网的链接。其中,<a href=“link”>链接标题</a> 形式的语句使该链接生效,需要注意的是,在href参数中需要使用转义字符串\!”。然后,该链接将在JMP Pubic索引信息中被识别,单击该链接则跳转至相应地址,甚至是另一个JMP Public报告。

4 add report ()<< add report ()可以将拟发布的所有报表和其他元素添加到New Web Report ()所构建的容器中。如果你需要添加新报表,则另起一行,再写一句<< add report (),并重新运行脚本即可。

5 publish ()1) URL ()用于指定JMP Public服务器的网络地址。2) public (0 or 1)定义所发布的报表是“孤芳自赏”还是“雅俗共赏”。如在图-2的示例中,public (0)使所发布的报表仅自己可见,因此在Web页面子报表的右上角呈现“锁型”图标。如果想变更为所有人可见,则设置public (1)公开即可。3) 图-2示例为首次发布报表的JSL范本。若想用当前发布报表替换之前的已发布报表,则追加一个replace ()语句即可,参数为期望替换报表的Package ID。所谓Package ID,即在已发布报表的网址末尾,一段具有唯一性的代码,非常容易识别,拷贝ID粘贴至红色字符处即可。




6  结尾的If ()语句用于打开发布后的Web报表页面,而Close All ()语句则使整个发布过程归于无形。

7  其他方面,本文虽然将《如何用JMP让新冠肺炎疫情的可视化清晰地共享可见》原文中的仪表板式报表简化为两个单一报表发布,但其套路对于仪表板式报表的发布同样适用,只是生成待发布报表的JSL脚本会有所不同而已。此外,JMP报表的交互特性也将在JMP Live或JMP Public的Web报表中尽可能地被予以保留。

8  最后,如果你的数据源保持定期更新,那么,通过上述逻辑链条,我们已然可以实现一键式的生成自定义报表并发布至指定的JMP Public或JMP Live服务器。此时,JMP的广大拥趸兴许还有一丝奢望,那就是是否可以实现自定义报表按照自定义周期来滚动自动发布?答案也是肯定的。还记得我们早前曾经发布的《JSL高手修炼秘籍之--自动化分析运行程序,让你的报告自动“跑”起来!》文章吗?没错!只需在所编写脚本的起始行添加 //! 字符串,则该脚本在打开时便可自动运行,这在某种程度上将一个*.jsl文件转型为了一个近似*.exe的文件。再配合Windows的任务计划程序,即可打通周期性自动发布报表的完整路径,从而使所发布报表实时更新。

可以预见的是,伴随JMP产品系列的不断更新换代,依托JMP原本强大统计分析能力的信息分享必将使你的统计洞察发挥更大价值,而事实上也的确如此,越来越多的JMP用户正在与我们探索如何充分运用JMP Live为企业赋能,让分析成果广泛地在组织内得以即时分享并落地应用。如果你对本文中所提到的报表感兴趣,欢迎前往JMP Public查看更多

当然了,如果你对JSL的编写和应用也感兴趣,欢迎参加即将于2月21日下午14:00-15:30举办的JMP精学课堂之《JMP脚本语言基础介绍》,来领略JSL的强大功能。

此次课程将介绍JMP脚本语言的一些常规操作,通过具体的案例演示,帮助大家理解和掌握应用JSL所需的基础知识,实现运用JSL突破JMP软件菜单界面的限制,从而拓展数据分析的应用领域,根据企业实际需要实现计算方法个性化、分析过程自动化、汇总报告客户化、质量管理标准化等多种功能。


课程内容  
1  从数据表获取

2  模型窗口调用

3  报表数据提取、汇总

4  生成PDF输出文件

5  脚本的封装

6  JMP软件学习渠道

7  问题与讨论


点击这里即可快速报名


报名成功后,你的注册邮箱将收到注册确认及详细参会信息邮件。请保存此封邮件,按照相应说明,即可轻松登入会议。

如果在注册、登录期间有任何问题,也欢迎随时与我们沟通。


咨询热线  
021-61633046
Polly.cheng@jmp.com


小福利
如果你对本文所附带的JMP Public自动发布JSL模板感兴趣的话,欢迎私信我们留下联系方式,新鲜出炉的JSL模板将赠送给你。在模板中,我们将gb01和gb02替换为了JMP自带样本数据集下Big Class.jmp的两个简单图表,便于你来练习。


更多数据分析相关干货、JMP实用技巧、JMP最新活动,敬请关注JMP官方微信公众号:




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|JMP数据分析论坛 ( 沪ICP备13022603 )  

GMT+8, 2020-8-15 17:36 , Processed in 0.309651 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表