Apprenez-en plus dans notre cours en ligne avec
vidéos, exercices pratiques et quiz.
Sélectionnez et suivez les leçons dans n'importe quel ordre.
Introduction au langage de script JMP

Dans cette démonstration, nous utiliserons un script pré-écrit pour découvrir comment créer un rapport personnalisé. Dans le journal de cours, dans la section « Données NOx », nous trouvons un script pour les données d'oxydes d'azote. Nous avons six préparations différentes. Nous avons ensuite enregistré le journal de la concentration d'oxydes d'azote pour chacune des répliques des six préparations. Le script est donc pré-écrit. Dans le journal de cours, il s'appelle « Script de rapport NOx personnalisé ». Je vais l'exécuter étape par étape. Je souhaite l'exécuter dans son intégralité afin de visualiser le résultat final avant d'examiner le fonctionnement de chaque partie du script. Je vais donc l'exécuter dans son intégralité. Ce script crée un tableau récapitulatif utilisé dans le générateur de graphiques. Nous allons l'examiner afin de ne pas utiliser uniquement les données brutes. Le rapport personnalisé est un rapport à onglets. Le premier onglet, « %CV », présente la plateforme de génération de graphiques en direct. Ce triangle rouge est le menu typique du Générateur de graphiques. Ensuite, nous avons les coefficients de variation calculés, ou %CV, pour chaque niveau. Ici, nous avons un menu personnalisé créé par notre script, qui me permet de spécifier le nombre de décimales pour les colonnes numériques de mon rapport. Le deuxième onglet, intitulé « Informations générales », contient les données brutes pour chaque niveau, la moyenne et l'écart type utilisés pour calculer le coefficient de variation, ainsi que la valeur calculée. Si je fais une sélection dans ce menu, ce que je vais faire, dans « %CV », l'onglet principal, je sélectionne deux décimales. Le script examine toutes les cases des colonnes numériques de ce rapport. Voyons comment il a été construit. La première chose que le script fait est d'envoyer un message unidirectionnel à la table de données d'origine avec le logarithme de l'oxyde d'azote : le logarithme de la concentration d'oxyde d'azote dans le rôle Y et de la préparation dans le rôle X. Pour calculer le coefficient de variation, j'ai besoin du tableau des moyennes et des écarts types. Je demande donc qu'il soit activé. Il existe de nombreuses façons d'obtenir le coefficient de variation depuis JMP sans le calculer manuellement. Nous illustrons ici l'utilisation de valeurs matricielles. Voici la sortie unidirectionnelle avec le tableau demandé. Dans la ligne, nous voyons l'autre syntaxe permettant d'obtenir la couche de rapport. L'avantage de cette syntaxe est que, si je n'ai pas besoin de tout le contenu du rapport, je peux simplement demander, dans ce cas, l'élément de plan du tableau souhaité : les moyennes et les écarts types. Cela simplifie un peu mon code lorsque j'accède aux zones d'affichage. Je stocke ces informations dans la variable ob. Ici, notre convention consiste simplement à utiliser l'abréviation de « zone de plan ». Vous avez vu qu'au survol, une valeur était déjà stockée, car j'avais déjà exécuté le script. Je vais réaffecter cela. Les lignes et récupèrent la colonne des niveaux, puis les colonnes des moyennes et des écarts types. Pour les niveaux, je n'ai pas besoin de manipuler les valeurs de cette colonne. Je vais juste les inclure dans mon rapport personnalisé pour la table Estimations et dans les informations de base, la table Tous les résultats. Une solution pratique pour une zone d'affichage dont j'ai juste besoin d'une copie est d'envoyer le message « clone box ». Cela stockera un clone de cette zone d'affichage dans Levels, même après avoir fermé la fenêtre unidirectionnelle. Nous inscrivons donc la variable ob avec String Col Box. Ici encore, nous pourrions utiliser les en-têtes de colonne, et ce serait bien sûr utile. Mais comme nous n'avons qu'une seule zone d'affichage stockée dans ob, ou la référence à celle-ci stockée dans ob, il est assez facile d'utiliser la syntaxe simple avec les valeurs d'index. J'exécute la ligne. Levels stocke donc maintenant une zone d'affichage, et plus précisément une zone de colonne de chaîne, comme vous pouvez le voir ici dans le journal. J'ai besoin d'utiliser les moyennes et les écarts types dans mes calculs. Je ne peux donc pas simplement les copier. Je dois récupérer les valeurs sous forme de matrice et les stocker dans la variable mMeans, ou matrice des moyennes. Vous pouvez voir ces valeurs dans le journal, ou en passant la souris sur mMeans. Il en va de même pour les écarts types. J'exécute cette variable et, encore une fois, vous pouvez (je vais réduire légèrement la taille) voir ces valeurs dans le journal. La variable mCVs est créée, et c'est juste le calcul du coefficient de variation. Il s'agit d'une mesure relative de la variabilité où l'on divise les écarts types par la moyenne, puis on multiplie le résultat par… J'exécute la variable mCVs. J'ai donc les coefficients de variation. Pour l'instant, je n'ai besoin de rien d'autre de la plateforme. Je vais donc envoyer le message à ow (ce message est envoyé à la référence de l'objet de la couche d'analyse) pour fermer cette fenêtre. Je recommande toujours que lorsque votre script ferme des fenêtres, qu'il s'agisse d'analyses ou de tables de données inutiles, il ferme ces fenêtres. Si elles ne sont plus nécessaires, elles n'ont pas besoin d'être utilisées en mémoire. Passons maintenant à l'étape suivante : je souhaitais utiliser le Générateur de graphiques dans mon rapport personnalisé. Or, il ne calcule pas actuellement le coefficient de variation comme statistique récapitulative. La solution a donc consisté à créer ce tableau récapitulatif avec le coefficient de variation, intégré à la commande Tableaux récapitulatifs, et à l'utiliser comme base pour le Générateur de graphiques. Avant d'obtenir le tableau récapitulatif, je souhaite fermer celui qui s'est affiché lors de l'exécution du script. Lorsque je le ferme, un message d'avertissement s'affiche : une autre fenêtre est ouverte. Je vous invite donc à tout fermer. Le Générateur de graphiques a alors été supprimé de mon rapport personnalisé. À ce stade, il n'y a donc aucune raison de laisser cet exemple de rapport personnalisé ouvert. Nous allons le recréer au fur et à mesure de la progression du script. Je vais donc fermer celui-ci également. La ligne envoie le message « Résumé » à la table de données d'origine, où nous regroupons par préparation. La statistique sera ce coefficient de variation. J'exécute la ligne. J'ai maintenant tout ce dont j'ai besoin pour créer mon rapport personnalisé. Nous utilisons « Nouvelle fenêtre ». Je vais stocker la zone d'affichage créée par cette commande dans la variable nw afin de pouvoir communiquer avec elle. J'intitule ma nouvelle fenêtre « Rapport personnalisé », puis je souhaite scripter ces onglets. Nous spécifions « Zone d'onglets ». Le nombre d'onglets est déterminé par le nombre d'arguments de zone de page d'onglets fournis. Dans ce cas, le premier argument de « Zone de page d'onglets » est le titre. Le premier argument est donc appelé %CV. Enfin, « Zone de liste » me donne une liste horizontale qui contiendra le générateur de graphiques. Je le lance donc en direct. Voici comment obtenir cette plateforme en direct dans cette fenêtre : le lancement s'effectue directement dans la zone d'affichage. Cette syntaxe a peut-être été récupérée lors de la création interactive du Générateur de graphiques et de son envoi à la table de synthèse. J'ajoute ensuite, dans la liste déroulante H, la zone de contour, appelée « Estimations », qui contient la zone de tableau contenant la colonne de chaîne stockée dans « Niveaux ». Mon script crée une zone de colonne numérique avec les valeurs %CV. Le deuxième onglet contient les informations générales, avec une zone de contour pour l'intituler « Tous les résultats ». Dans cette zone de contour, une zone de tableau aligne horizontalement quatre zones de colonnes numériques. Je vais donc l'agrandir pour être sûr de saisir les lignes souhaitées, qui sont à travers. J'exécuterai cette partie. Ce n'est donc pas terminé. C'est le point de départ de mon rapport personnalisé. Je pense pouvoir réduire légèrement la fenêtre de script pour que les deux soient visibles côte à côte. Par défaut, le Générateur de graphiques ne comporte pas de ligne, ce qui est l'une des choses que je souhaite ajouter. Je souhaite la redimensionner, car je n'ai pas besoin d'un graphique aussi grand. Je souhaite également ajouter ce menu triangulaire rouge à l'élément de plan « Estimations ». Remarquez que, dans le script, lorsque j'ai créé la zone de plan des estimations dans le premier onglet du rapport personnalisé, j'ai stocké ce résultat dans « ob ». Il s'agissait d'un nom de variable que j'avais utilisé précédemment pour obtenir les moyennes et les écarts types de la plateforme unidirectionnelle. Là encore, j'ai simplement utilisé l'abréviation et remplacé cette valeur, car je n'avais pas besoin de la valeur précédente. Si je fais défiler la page vers le bas pour voir la suite du script, j'envoie le message « Set Menu Script » à la zone d'affichage stockée dans « ob », c'est-à-dire la zone de plan « Estimations ». Set Menu Script prend comme argument une liste d'éléments de menu alternant avec l'expression qui s'exécute lorsque cet élément est sélectionné. L'expression parcourt donc simplement les zones de colonnes numériques du rapport et définit le format. Nous avons une largeur de champ indiquant le nombre maximal de caractères affichables, ainsi que le nombre de décimales. Ainsi, selon l'option de menu triangulaire rouge sélectionnée, cela détermine les expressions à exécuter. Je vais donc exécuter des lignes. Dans le rapport personnalisé, vous voyez maintenant le menu triangulaire rouge. « Ligne » va modifier la taille du cadre du générateur de graphiques. Si je clique droit sur le bouton « Divulgation », puis sous « Modifier », je sélectionne « Afficher l'arborescence », je peux faire défiler vers le bas. Lorsqu'on consulte un rapport complet, on y trouve de nombreux constructeurs que nous n'utilisons pas pour nos propres scripts. Mais je fais défiler vers le bas. OK, il y a PictureBox, faites défiler encore plus bas, il y a ce titre, faites défiler encore plus bas. Vous pouvez survoler pour voir les cadres des axes. Enfin, je vois la FrameBox, et je vois que c'est l'élément que je souhaite redimensionner. Comme vous vous familiarisez avec les plateformes, vous n'aurez peut-être pas besoin de consulter l'arborescence. J'inscris donc la nouvelle fenêtre avec la ligne « Taille du cadre », exprimée en pixels, puis j'exécute la ligne « Ce qui a redimensionné la zone de cadre de Graph Builder. » Vous pouvez utiliser l'index de script pour voir quels types de messages les différentes zones d'affichage peuvent recevoir. Dans le menu Aide, je sélectionne « Index de script », je peux passer de « Toutes les catégories » à « Zones d'affichage », puis faire défiler la page pour trouver la FrameBox et voir les messages qui peuvent lui être envoyés. Je vais fermer l'index de script. Nous voulions également ajouter une ligne de référence à l'AxisBox. Si je ne connaissais pas l'arborescence d'affichage de Graph Builder, j'utiliserais la fenêtre « Arborescence ». Sur certaines plateformes, c'est l'axe vertical. Sur certaines plateformes, c'est l'axe horizontal. Dans ce cas, c'est l'axe horizontal. J'envoie le message pour ajouter la ligne de référence. Les arguments sont : « À quelle valeur voulez-vous que la ligne de référence soit ? » Je la veux à « Quel style de ligne ? » Je veux du solide. La couleur ? Je prends du noir. Le quatrième argument est une étiquette sur l'axe. Donc, en ayant simplement une chaîne de caractères vide, nous indiquons que nous ne voulons pas d'étiquette. En fait, je pourrais la supprimer à condition d'avoir cette virgule pour indiquer à JMP qu'il s'agit du cinquième argument, et non du quatrième. Sans cette virgule, JMP étiquetterait l'axe avec un « Mais comme j'ai mis la virgule ici, JMP comprend qu'il s'agit de la largeur de la ligne, et non de l'étiquette. J'exécute donc « line » et cela dessine ma ligne de référence. Enfin, la toute dernière partie de ce script consiste à envoyer « Enregistrer le journal » à la zone d'affichage stockée dans nw et à l'appeler « Custom CV Report.jrn ». Votre script pourrait se terminer ici en générant ce rapport avec la fenêtre du Générateur de graphiques en direct et le menu triangulaire rouge permettant à l'utilisateur d'interagir. Je vais d'ailleurs sélectionner une décimale cette fois. Dans certains cas, vous souhaiterez peut-être également enregistrer ce rapport sous forme de journal. Vous perdrez alors ce menu triangulaire rouge et votre Générateur de graphiques ne sera plus un rapport en direct. La dernière option montre comment enregistrer un rapport personnalisé sous forme de journal avec le message « Enregistrer le journal ». Dans ce script, nous avons lancé la couche d'analyse. Nous avons récupéré l'objet de la couche de rapport, puis obtenu les éléments de cette couche nécessaires, soit sous forme de copies, soit sous forme de matrices pour les manipulations. Nous avons créé une table de données distincte pour la plateforme souhaitée, puis créé le rapport personnalisé via Nouvelle fenêtre. Dans ce cas, nous avons utilisé des onglets, des listes déroulantes horizontales et des zones de contour comme zones d'affichage, en plus de la zone de colonne de chaîne stockée dans les Niveaux et des différentes zones de colonne de nombres. Nous avons ensuite vu comment envoyer des messages aux composants de ce rapport personnalisé.