这篇博文详细介绍了如何在 JMP 中创建图形,并将其导入 PowerPoint。这样,每次打开 PowerPoint 文件时,JMP 创建的图形都会自动添加到当前幻灯片中。这听起来像是一个很棒的新功能,但实际上,插入和链接图片的功能早在 1990 年Windows 应用程序发布对象链接与嵌入 (OLE) 时就已经出现了。所以,对于那些不太了解 OLE 的用户,我们来谈谈如何使用 JMP 来实现 OLE 功能。
总体思路很简单(而且可以用脚本实现)。第一步是在 JMP 中创建一个图形,并将其保存为一个类似“Figure1.png”的创意文件名。下一步是在 PowerPoint 中,使用“插入”选项卡从文件中插入图片。在 PowerPoint 弹出的文件选择对话框底部,有一个显示选项的按钮。选中这两个选项,即可将文件插入并链接到文档中。
为了验证这个概念,请更改部分行的颜色,并将 JMP 图形保存为相同的文件名,然后再次打开 PowerPoint 文件。您应该会看到插入的文件也发生了变化。
为了方便后续操作,我提个小技巧:新建一个文件夹,把图形生成脚本和 PowerPoint 文件都保存在这个文件夹里。这样就不用担心文件路径的问题了,所有程序都会默认文件位于本地。
PowerPoint 允许您一次性插入和链接多个文件。第一个文件插入正常,但其余文件都会以令人遗憾、不便且意想不到的方式缩放。这是微软的问题,而不是 JMP 的问题。
如果将多张图片插入到同一张幻灯片中,并对其进行缩放或设置格式,则这些格式会在 PowerPoint 中保留,因此只需设置一次格式即可。
实现此功能的基本脚本基于“获取图片”和“保存图片”功能。有关其在此简单应用之外的更多详细信息,请查看脚本索引。JMP 报表包含图表。难点在于如何定位报表中的特定部分。每个报表都有用于显示或隐藏元素的灰色小三角形。右键单击灰色三角形会弹出一个菜单,其中包含“显示属性”。单击此选项后,右侧会打开一个面板。在该侧边栏顶部,有一个名为“框路径”的封闭式边框,打开它,然后单击双页图标将路径复制到剪贴板。此路径指向报表中突出显示的内容,也就是您需要从中“获取图片”的报表对象。以下脚本展示了如何实现此功能。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Design Experiment/Reactor 20 Custom.jmp" );
//dt=Open( "$SAMPLE_DATA/Design Experiment/Reactor 32 Runs.jmp" )
obj = dt << Fit Model(
Y( :Percent Reacted ),
Effects(
:Feed Rate, :Catalyst, :Stir Rate, :Temperature, :Concentration, :Feed Rate * :Catalyst, :Feed Rate * :Stir Rate,
:Feed Rate * :Temperature, :Feed Rate * :Concentration, :Catalyst * :Stir Rate, :Catalyst * :Temperature,
:Catalyst * :Concentration, :Stir Rate * :Temperature, :Stir Rate * :Concentration, :Temperature * :Concentration
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
:Percent Reacted << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ), Effect Details( 0 ),
Lack of Fit( 0 ), Sorted Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 1 ), Plot Effect Leverage( 0 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 ), Profiler(
1,
Confidence Intervals( 1 ),
Desirability Functions( 1 ),
Term Value(
:Feed Rate( 12.5, Lock( 0 ), Show( 1 ) ), :Catalyst( 1.5, Lock( 0 ), Show( 1 ) ),
:Stir Rate( 110, Lock( 0 ), Show( 1 ) ), :Temperature( 160, Lock( 0 ), Show( 1 ) ),
:Concentration( 4.5, Lock( 0 ), Show( 1 ) )
)
)}
)
);
objr = obj << report;
fig 1 = Report( obj )["Response Percent Reacted", "Actual by Predicted Plot", List Box( 1 )] << get picture;
fig 2 = Report( obj )["Response Percent Reacted", "Studentized Residuals", List Box( 1 )] << get picture;
fig 3 = Report( obj )["Response Percent Reacted", "Summary of Fit"] << get picture;
fig 4 = Report( obj )["Response Percent Reacted", "Analysis of Variance"] << get picture;
fig 5 = Report( obj )["Response Percent Reacted", "Prediction Profiler"] << get picture;
win = New Window( "report figures", H List Box( fig1, V List Box( fig3, fig4 ) ), fig2, fig5 );
fig 1 << Save Picture( "fig1.png", "png" );
fig 2 << Save Picture( "fig2.png", "png" );
fig 3 << Save Picture( "fig3.png", "png" );
fig 4 << Save Picture( "fig4.png", "png" );
fig 5 << Save Picture( "fig5.png", "png" );
为了简化操作,本脚本使用示例数据中的数据。
尝试一下这个概念:
我之前说的把所有文件都放在一个文件夹里可不是开玩笑。新建一个文件夹,把脚本和博客附件里的pptx文件都放进去。
运行脚本后,它会打开一个显示图形的窗口,同时保存 5 个 png 文件。这些文件会保存到脚本所在的文件夹中。(如果您没有将脚本保存到该文件夹,这些文件可能会保存到任何位置,也可能根本不会保存,或者会报错。)
打开 PowerPoint 幻灯片,你应该能看到数字。关闭 pptx 文件,不要保存。
现在打开报表,将部分行涂成你喜欢的颜色。然后运行脚本的这一部分。
fig 1 = Report( obj )["Response Percent Reacted", "Actual by Predicted Plot", List Box( 1 )] << get picture;
fig 2 = Report( obj )["Response Percent Reacted", "Studentized Residuals", List Box( 1 )] << get picture;
fig 3 = Report( obj )["Response Percent Reacted", "Summary of Fit"] << get picture;
fig 4 = Report( obj )["Response Percent Reacted", "Analysis of Variance"] << get picture;
fig 5 = Report( obj )["Response Percent Reacted", "Prediction Profiler"] << get picture;
win = New Window( "report figures", H List Box( fig1, V List Box( fig3, fig4 ) ), fig2, fig5 );
fig 1 << Save Picture( "fig1.png", "png" );
fig 2 << Save Picture( "fig2.png", "png" );
fig 3 << Save Picture( "fig3.png", "png" );
fig 4 << Save Picture( "fig4.png", "png" );
fig 5 << Save Picture( "fig5.png", "png" );
然后再次打开 pptx 文件。它应该已经更新了。如果没有更新(因为我无法在您的计算机上进行测试),您可能需要按照步骤插入并链接到您本地的 pptx 文件副本。
诚然,第一次设置起来确实有点麻烦,但一旦设置好,它真的帮我节省了无数个小时重新发布更新版幻灯片的时间。希望它对你也有用。