cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Instantly extract effect sizes, F-ratios, and FDR-adjusted p-values from your models with the Calculate Effects Sizes extension, available now in the JMP Marketplace!
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Use World Cup data to build models, explore spatial relationships, and create informative visualizations in JMP. Register. July 17, 2 pm US Eastern Time.

Byron Wingerd's Blog

Choose Language Hide Translation Bar
Byron_JMP
Staff
Make PowerPoint Slides or Word Docs that Auto-Update Figures made in JMP

This blog post details a process for making figures in JMP that can be used in PowerPoint in such a way that every time the PowerPoint file is opened it pulls the current version of the figure that JMP makes into the current slide deck.   This might sound like a fancy new feature, but the option to insert and link a picture was first introduced in 1990 with the release of Object Linking and Embedding (OLE) in Windows applications. So, for those who are a little late to the party, lets talk about how to use JMP to exploit OLE.

The general idea is pretty simple (and scriptable).  The first step is to make a figure in JMP and save it with a creative file name like, "Figure1.png".  The next step happens in PowerPoint where we use the Insert tab to Insert a picture from a file.  At the bottom of the file selection dialog that PowerPoint launches, there is a button to show option. Check both options to insert and link and save the file with the document. 

To test the concept, change the color of some of the rows, and save the JMP figure with the same file name, then open the PowerPoint file again.  You should see that the inserted file has also changed.

Just a tip to make all the next things easy.  Make a new folder. Save your figure making script there, and also save the PowerPoint file there too.  By doing this you don't have to worry about file paths, everything just assumes the file location is local.

PowerPoint will let you insert and link lots of files all in one shot. The first file inserts nicely, and all the rest and going to be scaled in unfortunate, inconvennient, and unexpected ways. This is a MS problem not a JMP problem.

If you insert multiple images onto the same slide, and scale or format them, that formatting sticks in PowerPoint, so format once, and done.

The basic script to make this work is based on "get picture" and "save picture". Check the scripting index for more details on how they work beyond this simple application.   A JMP Report will have figure and tables. The tricky part is knowing how to address a specific part of the report. Ever report has little grey triangles for disclosing or hiding elements. A right click on a grey triangle brings up a menu that includes, Show Properties. When you click this option, a panel on the right side opens. At the top of this sidebar, there is a closed outline bar called Box Path, open this and then click the double page icon to copy the path to the clipboard.   This path references what ever was highlighted in the report, and is the report object that you need to "get picture" from.   In the following script you can see how this can be implemented. 

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" );

This script uses data from Sample Data to keep things simple.

Trying out the concept:

I wasn't kidding about keeping all the files in one folder. Make a new folder and put the script and pptx file attached to the blog in that folder. 

Run the script, and it will make a window with the figures, it will also save out 5 png files. They will go to the folder where the script is saved. (If you didn't save the script to the folder, they might go anywhere or nowhere, or it will throw an error.)

Open the Powerpoint slide, you should see figures. Close the pptx file, don't save.

Now go into the report, and color some of the rows your favorite color. Then run this part of the script.

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" );

Then open the pptx file again. It should have updated. If it didn't (because I can't test this on your computer) you might need to go through the process of insert and link with your local copy of the pptx file. 

Admittedly, this is a little bit of a pain to set up the first time, but once it's done, it has literally saved me hours and hours of time republishing updated slide decks.   I hope you find it useful too.

 

 

 

 

Last Modified: Jun 23, 2026 4:49 PM
Comments
gail_massari
Community Manager

Very useful, @Byron_JMP.  Instructions work great in MS Word, also!!! (I love your mug, too!)