Puis-je demander s'il existe une option permettant d'utiliser un modèle ppt personnalisé. où pouvons-nous ajouter plusieurs graphiques dans une seule diapositive si nous avons un modèle ?
Je comprends parfaitement ce que vous demandez. Cependant, il arrive parfois que les fonctionnalités disponibles dans JMP et destinées à une utilisation interactive ne se traduisent pas très bien dans le monde des scripts. Le filtre de données local en fait partie. C'est vraiment un outil interactif fantastique, mais dans le script ci-dessous, vous verrez que son utilisation dans un script ne fait que rendre le script plus complexe. Et la fonctionnalité interactive où les différentes valeurs joliment affichées dans la liste des filtres ne sont pas disponibles à partir du filtre lorsqu'il est utilisé dans JSL.
Voici le script utilisant un filtre de données local scripté
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" );
Voici l'exemple que j'ai utilisé pour répondre à vos questions, qui n'utilise pas le filtre de données local et obtient en fait une meilleure version du résultat souhaité.
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" );
Le deuxième exemple est un code beaucoup plus simple
Pour empêcher les graphiques de s'afficher pendant l'exécution du code, mais sans avoir été écrits dans le ppt, l'option "Invisible" peut être spécifiée dans la plateforme. J'ai également ajouté un moyen de gérer votre filtrage afin que vous puissiez voir un moyen simple de gérer cela.
Je soulignerai également que toutes ces options, etc. sont documentées et illustrées à travers des exemples @ :
Aide==>Index des scripts
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 ) );
Voici un exemple de script.
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>