如何通过JSL保存Dashboard运行动画(.gif)?专家您好,
我想通过 JSL 将仪表板保存为 .gif(动画),因为“日期”在 html 中不具有交互性。
动画的本地数据过滤器基于 AVI 日期(由于数据刷新,日期每天都会变化)。
在设置并运行动画控件后,我可以手动“另存为”.gif。
我认为这种类型的分析也可以通过 JSL 实现自动化。
因此,我在运行动画时将仪表板脚本导出到脚本窗口,但是当我运行脚本时动画没有运行。
我的问题是;
- 如何改进此脚本以直接在 JSL 中运行动画? --> 工作流程没有捕获“运行动画”动作,所以我不知道。
- 如何在JSL中保存动画仪表板?
我还参考了下面的其他讨论,但该方法适用于图形生成器,而就我而言,它是仪表板。
https://community.jmp.com/t5/JMP-Scripts/Save-a-Data-Filter-animation-as-an-animated-GIF/ta-p/24003
https://community.jmp.com/t5/Discussions/Saving-JMP-animation/mp/37025
我正在使用 JMP 17.0
先感谢您 !
自动化和脚本编写数据探索和可视化Re: 如何通过 JSL 保存 Dashboard 来运行动画(.gif)?我正在天才 JMP 技术支持的帮助下更新我的进度;
很酷且有用的额外参考
本地数据过滤动画
https://community.jmp.com/t5/Discussions/Local-Data-filter-amp-Animation-how-to-specify-the-range/td-p/623973
GIF 动画
https://community.jmp.com/t5/Uncharted/Animated-GIF-JMP-13/ba-p/21197
1) 目前,JSL 可以使用以下代码指示仪表板动画控件运行。
// Play animation (button 2) ---> OK
playbtn = window("DashboardName")["Local Data Filter", TabPageBox(1), ButtonBox(2)];
playbtn << Click();2)仍在努力录制动画并保存为动画gif。
目前,使用以下代码的尝试导致 JMP 崩溃 - 似乎它开始记录(单击而不释放)
// Start to record animation (button 6) --> RUNNING BUT JMP CRASH BEFORE NEXT STEP
startrecordbtn = window("Sheet1_LEFTOUTER - Dashboard")["Local Data Filter", TabPageBox(1), ButtonBox(6)];
startrecordbtn << Click();
wait(1.5);
// Stop to record animation (button 6)
stoprecordbtn = window("Sheet1_LEFTOUTER - Dashboard")["Local Data Filter", TabPageBox(1), ButtonBox(6)];
stoprecordbtn << Click();
wait(1);
// Save recorded animation (button 7)
saveanimation = window("Sheet1_LEFTOUTER - Dashboard")["Local Data Filter", TabPageBox(1), ButtonBox(7)];
saveanimation << Click();
Re: 如何通过 JSL 保存 Dashboard 来运行动画(.gif)?即使使用更简单的脚本,所有通过 JSL 进行“记录”和“另存为动画 GIF”指令的尝试都会以崩溃告终。
我已按照 JMP 技术支持的建议提交了崩溃报告(JMP 17.0 和 17.2 均崩溃。 我使用的是 Windows 10)。
names default to here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp")
dt << Graph Builder(
Size( 588, 528 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :sex ) ),
Elements( Heatmap( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :age ),
Where( :age == 14 ),
Display( :age, N Items( 6 ) )
),
Animation( Animate Column( :age ) )
)
);
playbtn = Window("Big Class - Graph Builder")["Local Data Filter",TabPageBox(1),ButtonBox(2)];
recordbtn = Window("Big Class - Graph Builder")["Local Data Filter",TabPageBox(1),ButtonBox(6)];
// Test play
print("starting play test");
playbtn << click();
wait(2);
playbtn << click();
print("ending play test");
wait(2);
// Test record
print("starting record test");
recordbtn << set(1);
playbtn << click();
wait(2);
playbtn << click();
recordbtn << set(0);
print("ending play test");希望 JMP 18 会考虑这一改进,以便可以自动记录和保存动画 GIF(因为它可以通过用手点击来完成而不会崩溃)
Re: 如何通过 JSL 保存 Dashboard 来运行动画(.gif)?嗯,不知道Jmp 18是否能解决这个问题......
Jmp18 EA 也会因上面的代码而崩溃。
您需要 gif 吗?或者可以获取所有步骤的单独屏幕截图吗?
对于后者,您可以编写一个脚本,单击数据过滤器中的每个条目,然后将相应的图形保存为图像。
这样的功能包含在图形生成器工具栏中- 但我刚刚注意到我有一段时间没有更新社区中的版本了。 -> 我现在刚刚上传,但审核过程需要一段时间......
Re: 如何通过 JSL 保存 Dashboard 运行动画(.gif)?嗨,霍吉,
基本上,我只需要一个 gif 动画。
我的思维过程是;让JMP通过JSL模仿我的手动点击。
但是,工作流程或日志没有保存“记录”点击活动,以便我可以保存为动画 .gif。
我现在能做的最好的事情就是自动化仪表板“运行”。 (无法解决录制GIF>另存为动画GIF的问题)。
对于“单击数据过滤器中的每个条目”,如果使用 BigClass 数据(数据过滤器 = 类别),则可能会起作用。
但是,我的仪表板的实际数据过滤器是日期。我的动画仪表板示例如下。

如果有解决方法,我将非常感激,因为我需要自动化流程,直到动画 .GIF。