這篇部落格文章詳細介紹如何在 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 檔案副本。
誠然,第一次設定起來確實有點麻煩,但一旦設定好,它真的幫我節省了無數個小時重新發布更新版幻燈片的時間。希望你也覺得它有用。