Esta entrada de blog detalla un proceso para crear figuras en JMP que se pueden usar en PowerPoint, de manera que cada vez que se abra el archivo de PowerPoint, se inserte la versión actual de la figura creada por JMP en la presentación actual. Esto puede parecer una función novedosa, pero la opción de insertar y vincular una imagen se introdujo por primera vez en 1990 con el lanzamiento de Object Linking and Embedding (OLE) en las aplicaciones de Windows. Así que, para quienes se hayan quedado un poco atrás, veamos cómo usar JMP para aprovechar OLE.
La idea general es bastante sencilla (y programable). El primer paso es crear una figura en JMP y guardarla con un nombre de archivo creativo, como "Figura1.png". El siguiente paso se realiza en PowerPoint, donde usamos la pestaña Insertar para insertar una imagen desde un archivo. En la parte inferior del cuadro de diálogo de selección de archivos que abre PowerPoint, hay un botón para mostrar opciones. Marca ambas opciones para insertar y vincular, y guarda el archivo con el documento.
Para probar el concepto, cambie el color de algunas filas y guarde la figura de JMP con el mismo nombre de archivo; luego, vuelva a abrir el archivo de PowerPoint. Debería observar que el archivo insertado también ha cambiado.
Un consejo para que todo lo demás sea más fácil: crea una carpeta nueva. Guarda allí el script para crear las figuras y también el archivo de PowerPoint. De esta forma, no tendrás que preocuparte por las rutas de archivo; el sistema asumirá que la ubicación del archivo es local.
PowerPoint permite insertar y vincular varios archivos a la vez. El primer archivo se inserta correctamente, pero el resto se escalan de forma inadecuada, incómoda e inesperada. Este es un problema de Microsoft, no de JMP.
Si insertas varias imágenes en la misma diapositiva y les aplicas escala o formato, ese formato se guarda en PowerPoint, así que aplícalo una sola vez y listo.
El script básico para que esto funcione se basa en "obtener imagen" y "guardar imagen". Consulte el índice de scripts para obtener más detalles sobre cómo funcionan más allá de esta aplicación simple. Un informe JMP tendrá figuras y tablas. La parte complicada es saber cómo abordar una parte específica del informe. Cada informe tiene pequeños triángulos grises para mostrar u ocultar elementos. Al hacer clic con el botón derecho en un triángulo gris, aparece un menú que incluye "Mostrar propiedades". Al hacer clic en esta opción, se abre un panel en el lado derecho. En la parte superior de esta barra lateral, hay una barra de contorno cerrada llamada "Ruta de cuadro"; ábrala y luego haga clic en el icono de doble página para copiar la ruta al portapapeles. Esta ruta hace referencia a lo que se haya resaltado en el informe y es el objeto del informe del que necesita "obtener imagen". En el siguiente script puede ver cómo se puede implementar esto.
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" );
Este script utiliza datos de Sample Data para simplificar las cosas.
Probando el concepto:
No bromeaba cuando dije que guardaras todos los archivos en una sola carpeta. Crea una carpeta nueva y coloca allí el script y el archivo pptx adjuntos al blog.
Ejecuta el script y se abrirá una ventana con las figuras; además, se guardarán 5 archivos PNG. Estos se guardarán en la carpeta donde se guardó el script. (Si no guardaste el script en la carpeta, podrían guardarse en cualquier lugar o en ninguno, o podría aparecer un error).
Abre la diapositiva de PowerPoint; deberías ver las figuras. Cierra el archivo pptx, pero no lo guardes.
Ahora, abre el informe y colorea algunas filas con tu color favorito. Luego, ejecuta esta parte del 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" );
Luego, vuelve a abrir el archivo pptx. Debería haberse actualizado. Si no es así (ya que no puedo probar esto en tu ordenador), es posible que tengas que insertar y vincular la copia local del archivo pptx.
Reconozco que configurarlo la primera vez es un poco engorroso, pero una vez hecho, me ha ahorrado muchísimas horas de trabajo al tener que volver a publicar presentaciones actualizadas. Espero que a ti también te resulte útil.