¿Puedo preguntar si hay una opción para usar una plantilla ppt personalizada? ¿Dónde podemos agregar múltiples gráficos en una diapositiva si tenemos una plantilla?
Entiendo perfectamente lo que estás solicitando. Sin embargo, a veces las características que están disponibles en JMP y que están destinadas al uso interactivo no se traducen muy bien en el mundo de las secuencias de comandos. El filtro de datos locales es uno de ellos. Realmente es una herramienta interactiva fantástica, pero en el script a continuación, verá que su uso en un script solo hace que el script sea más complejo. Y la función interactiva en la que los diferentes valores que se muestran de forma agradable en la lista de filtros no están disponibles en el filtro cuando se usan en JSL.
Aquí está la secuencia de comandos que utiliza un filtro de datos locales con secuencias de comandos
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Get the levels of the Sex column. The Summarize function will
// create a list of the different levels of whatever column is
// specified in the "By" claue
Summarize( dt, GroupBy = By( :Sex ) );
gb = Graph Builder(
invisible,
Size( 517, 437 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) )
);
For( i = 1, i <= N Items( GroupBy ), i++,
gb << Local Data Filter( Add Filter( columns( :Sex ), Where( :sex == GroupBy[i] ) ), Mode( Show( 1 ), Include( 1 ) ) );
If( i == 1,
gb << Save Presentation( "$TEMP/jmp_example2.pptx" ),
gb << Save Presentation( "$TEMP/jmp_example2.pptx", Append )
);
gb << remove data filter;
);
Open( "$TEMP/jmp_example2.pptx" );
Aquí está el ejemplo que he estado usando para responder a sus preguntas, que no usa el filtro de datos local y en realidad obtiene una mejor versión de la salida que desea.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Get the levels of the Sex column. The Summarize function will
// create a list of the different levels of whatever column is
// specified in the "By" claue
Summarize( dt, GroupBy = By( :Sex ) );
For( i = 1, i <= N Items( GroupBy ), i++,
gb = dt << Graph Builder(
// The invisible option helps to keep the desktop clean
invisible,
Size( 517, 437 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) ),
// Here is an easy way to subset the data used in the grap
Where( :sex == GroupBy[i] )
);
If(i==1,
gb << Save Presentation( "$TEMP/jmp_example.pptx" ),
gb << Save Presentation( "$TEMP/jmp_example.pptx", Append );
);
);
Open( "$TEMP/jmp_example.pptx" );
El segundo ejemplo es un código mucho más simple.
Para evitar que los gráficos se muestren mientras se ejecuta el código, pero no se han escrito en el ppt, se puede especificar la opción "Invisible" dentro de la Plataforma. También he agregado una forma de manejar su filtrado para que pueda ver una manera fácil de lidiar con eso.
También señalaré que todas estas opciones, etc. están documentadas e ilustradas a través de ejemplos @:
Ayuda==>Índice de secuencias de comandos
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
gb = dt << Graph Builder(
// The invisible option helps to keep the desktop clean
invisible,
Size( 517, 437 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) ),
// Here is an easy way to subset the data used in the grap
Where( :sex == "F" )
);
New Window( "the graph", myvlb = V List Box() );
myvlb << append( Report( gb ) );
Aquí hay un guión de muestra.
Names Default to Here( 1 );
// The open function below, just need to point to the .xls or .xlsx file you want to open
dt=open("$SAMPLE_DATA\Big Class.jmp");
// Run the Distribution Platform
dis=dt<<DISTRIBUTION></DISTRIBUTION>