Dieser Blogbeitrag beschreibt, wie man in JMP Grafiken erstellt, die in PowerPoint so verwendet werden können, dass beim Öffnen der PowerPoint-Datei die aktuelle Version der von JMP erstellten Grafik in die aktuelle Präsentation eingefügt wird. Das mag wie eine moderne Funktion klingen, doch die Möglichkeit, Bilder einzufügen und zu verknüpfen, wurde bereits 1990 mit der Einführung von Object Linking and Embedding (OLE) in Windows-Anwendungen eingeführt. Für alle, die diese Funktion erst jetzt entdecken, erklären wir, wie man JMP zur Nutzung von OLE einsetzt.
Das Grundprinzip ist recht einfach (und per Skript umsetzbar). Zuerst erstellen Sie eine Grafik in JMP und speichern sie unter einem aussagekräftigen Dateinamen wie „Figure1.png“. Im nächsten Schritt fügen Sie in PowerPoint über die Registerkarte „Einfügen“ ein Bild aus einer Datei ein. Im Dateiauswahldialog von PowerPoint finden Sie unten eine Schaltfläche mit der Option „Anzeigen“. Aktivieren Sie beide Optionen zum Einfügen und Verknüpfen und speichern Sie die Datei zusammen mit dem Dokument.
Um das Konzept zu testen, ändern Sie die Farbe einiger Zeilen und speichern Sie die JMP-Grafik unter demselben Dateinamen. Öffnen Sie anschließend die PowerPoint-Datei erneut. Sie sollten sehen, dass sich auch die eingefügte Datei geändert hat.
Ein kleiner Tipp, um die nächsten Schritte zu vereinfachen: Erstellen Sie einen neuen Ordner. Speichern Sie dort Ihr Skript zur Grafikerstellung und auch die PowerPoint-Datei. Dadurch müssen Sie sich keine Gedanken mehr über Dateipfade machen; alles geht davon aus, dass sich die Datei lokal befindet.
PowerPoint ermöglicht das Einfügen und Verknüpfen vieler Dateien gleichzeitig. Die erste Datei wird korrekt eingefügt, alle weiteren jedoch werden unschön, unpraktisch und unerwartet skaliert. Dies ist ein Problem von Microsoft, nicht von JMP.
Wenn Sie mehrere Bilder auf derselben Folie einfügen und diese skalieren oder formatieren, bleibt diese Formatierung in PowerPoint erhalten. Formatieren Sie also einmal, und das war's.
Das grundlegende Skript basiert auf den Funktionen „Bild abrufen“ und „Bild speichern“. Weitere Details zur Funktionsweise dieser Funktionen finden Sie im Skriptindex. Ein JMP-Bericht enthält Abbildungen und Tabellen. Die Herausforderung besteht darin, den richtigen Bereich des Berichts anzusprechen. Jeder Bericht verfügt über kleine graue Dreiecke zum Ein- und Ausblenden von Elementen. Ein Rechtsklick auf ein graues Dreieck öffnet ein Menü mit der Option „Eigenschaften anzeigen“. Nach dem Klicken auf diese Option öffnet sich ein Bereich auf der rechten Seite. Oben in dieser Seitenleiste befindet sich eine geschlossene Konturleiste namens „Boxpfad“. Öffnen Sie diese und klicken Sie anschließend auf das Doppelseitensymbol, um den Pfad in die Zwischenablage zu kopieren. Dieser Pfad verweist auf den markierten Bereich im Bericht und ist das Berichtsobjekt, von dem Sie das Bild abrufen müssen. Im folgenden Skript sehen Sie, wie dies implementiert wird.
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" );
Dieses Skript verwendet Daten aus den Beispieldaten, um die Sache einfach zu halten.
Das Konzept ausprobieren:
Ich habe nicht gescherzt, als ich sagte, dass alle Dateien in einem Ordner gespeichert werden sollen. Erstellen Sie einen neuen Ordner und legen Sie das Skript und die dem Blog beigefügte PPTX-Datei in diesen Ordner.
Führen Sie das Skript aus. Es öffnet ein Fenster mit den Abbildungen und speichert außerdem fünf PNG-Dateien. Diese werden in dem Ordner gespeichert, in dem sich das Skript befindet. (Wenn Sie das Skript nicht in diesem Ordner gespeichert haben, können die Dateien irgendwo landen, es kann auch ein Fehler auftreten.)
Öffnen Sie die PowerPoint-Folie; dort sollten Abbildungen zu sehen sein. Schließen Sie die PPTX-Datei; speichern Sie sie nicht.
Öffnen Sie nun den Bericht und färben Sie einige Zeilen in Ihrer Lieblingsfarbe ein. Führen Sie anschließend diesen Teil des Skripts aus.
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" );
Öffnen Sie anschließend die PPTX-Datei erneut. Sie sollte nun aktualisiert sein. Falls nicht (da ich dies nicht auf Ihrem Computer testen kann), müssen Sie möglicherweise den Vorgang des Einfügens und Verknüpfens mit Ihrer lokalen Kopie der PPTX-Datei durchführen.
Zugegeben, die Einrichtung ist beim ersten Mal etwas umständlich, aber sobald es einmal erledigt ist, hat es mir buchstäblich unzählige Stunden an Zeit erspart, die ich sonst mit dem erneuten Veröffentlichen aktualisierter Präsentationen verbracht hätte. Ich hoffe, es ist auch für Sie nützlich.