Dans le précédent article ( Partie 1 ), nous avons présenté la fonctionnalité d'intégration Python de JMP, qui permet d'écrire du code Python directement dans JMP. Cette intégration offre l'avantage de combiner leurs atouts respectifs, notamment « l'élargissement de la gamme des méthodes d'analyse avec Python et l'exploration et la visualisation des résultats avec JMP ».
Cette fois-ci, nous allons examiner la relation entre JSL (JMP Scripting Language), le langage propriétaire de JMP, et Python.
L'intégration Python de JMP permet d'appeler du JSL depuis du code Python, et inversement. Autrement dit, vous pouvez écrire le même processus en commençant par Python ou par JSL.
P0.png
Dans cette session, en utilisant l'exemple 1 de la session précédente (acquisition de données auprès de la Banque mondiale) comme étude de cas, nous présenterons ces deux méthodes d'écriture côte à côte et organiserons les caractéristiques de chacune ainsi que la réflexion qui sous-tend leur utilisation appropriée.
Exécution de scripts JSL depuis un environnement Python (une approche basée sur Python)
Dans l'exemple précédent, nous avons présenté un code Python permettant d'extraire des indicateurs économiques de la Banque mondiale sous forme de tableau de données JMP. Les analystes peuvent ensuite visualiser et analyser ces données en sélectionnant des graphiques à bulles et d'autres options dans le menu JMP.
Dans ce cas, vous pourriez vous demander s'il est possible de coder non seulement l'extraction des données, mais aussi la création des rapports d'analyse JMP.
Je vais illustrer cela avec l'exemple précédent de création d'un rapport sous forme de graphique à bulles.
L'image ci-dessous présente le graphique à bulles (résultat) avec les options [Lignes de trajectoire] > [Tout] et [Étiquettes] > [Tout] sélectionnées à l'aide du bouton triangulaire rouge en haut à gauche. Cette option affiche le nom du pays pour chaque bulle et représente la trajectoire de son mouvement par des lignes lorsque l'évolution annuelle est animée.
Si vous sélectionnez [Enregistrer le script] > [Accéder à la fenêtre de script] pour ce rapport, une fenêtre de script JSL s'ouvrira, dans laquelle vous pourrez visualiser le script qui code les spécifications et les options de colonne pour ce rapport.
P1.png
Ce script (JSL) peut être écrit dans l'éditeur de scripts Python, en même temps que le code Python, et exécuté directement. L'image ci-dessous montre le script Python (Example1-1_WorldBank.py) présenté précédemment, auquel a été ajouté le code d'exécution JSL (Example1-2_WorldBank.py).
jmpパッケージの run_jsl() の中にJSLを記述すると、Python環境の中でJSLスクリプトを実行することができます。
Lorsque vous utilisez `run_jsl (''' ... ''')` avec trois guillemets simples, tout ce que vous écrivez entre eux, y compris les sauts de ligne, sera traité comme une chaîne de caractères.。
P2.png
La partie rouge du schéma ci-dessus correspond au code qui exécute le JSL ajouté. Permettez-moi d'expliquer brièvement cette partie JSL.
最初の Current Data Table() は、現在アクティブになっているデータテーブルを返すコマンドです。この例では、直前に世界銀行の経済指標をJMPのデータテーブルとして取り込んでいるので、そのテーブルを dtという変数に格納しています。また、Set Name() で、データテーブル名を「World Bank Data」に変更しています。
dt = Current Data Table();
dt << Set Name( "World Bank Data" );
La commande suivante modifie le format d'affichage (Format) du tableau de données. Ceci est présenté comme un exemple de syntaxe JSL ; le traitement ultérieur fonctionnera sans elle.
La dernière partie concerne le graphique à bulles. On y spécifie les colonnes à assigner à la variable `dt` (définie précédemment) pour X, Y, la taille des bulles, etc., ainsi que les options à utiliser lors de l'exécution du graphique. Le code JSL enregistré précédemment via [Enregistrer le script] > [Accéder à la fenêtre de script] fonctionnera tel quel, mais voici une version simplifiée ne contenant que les commandes nécessaires.</CODE></FONT></P>
<PRE><CODE class=" language-jsl">dt << Bubble Plot(
X( :GDP_per_capita ),
Y( :Life_expectancy ),
Sizes( :Population ),
Time( :Year ),
Coloring( :Country ),
ID( :Country ),
Label( "All" ),
Trail Lines( "All" ),
);
L'exécution de ce code vous permettra de charger des données de la Banque mondiale et d'afficher un rapport sous forme de graphique à bulles, le tout en une seule opération.
Fonctionnalités permettant d'interagir avec Python dans un environnement JSL (écriture de code à partir de JSL)
Jusqu'à présent, nous avons montré qu'il est possible d'exécuter du JSL depuis un environnement Python, mais inversement, il est également possible d'exécuter du code Python depuis un environnement JSL.
Voici le même code qu'auparavant (Example1-2_WorldBank.py), réécrit en code JSL (Example1-2_WorldBank.jsl).
JSLの Python Submit() 関数を使うと、引数として渡した文字列の中に書かれたPythonコードを実行できます。今回は、先ほどのPythonスクリプトのうちPythonのコード部分を、Python Submit() の中に入れただけです。
La chaîne que vous transmettez à la fonction Submit() de Python est "\[ etEn encadrant le texte par `]\"`, tout ce qui est écrit à l'intérieur peut être traité comme du texte.
P3.png
Si vous sélectionnez [Modifier] > [Exécuter le script] pour ce script JSL, vous obtiendrez le même résultat qu'avec un script Python.
Quelle approche devriez-vous utiliser : une approche basée sur Python (.py) ou une approche basée sur JSL (.jsl) ?
Le choix dépend de la méthode qui constitue l'objectif principal du traitement .
Utilisez un fichier .py si l'analyse principale fait appel à des bibliothèques Python. Utilisez un fichier .jsl si vous devez créer des boîtes de dialogue pour sélectionner des colonnes ou générer des rapports JMP complexes.
Il existe des cas où il est préférable d'écrire du code en commençant par Python (.py).
- L'analyse utilisera principalement des bibliothèques Python telles que scikit-learn.
- Ceci s'adresse aux personnes qui connaissent le code Python.
Quand est-il préférable d'écrire du code en commençant par JSL (.jsl) ?
- Le fonctionnement de JMP sera essentiel au processus global.
- Automatisez et personnalisez l'affichage des rapports JMP après analyse.
- Ajoutez des boîtes de dialogue pour la sélection des colonnes et la saisie des paramètres afin d'en faire un outil plus polyvalent.
En conclusion
Dans cet article, nous avons examiné la relation entre Python et JSL dans les fonctionnalités d'intégration Python de JMP. Voici les points clés :
- Python環境からは、jmpパッケージの
<EM>exécuter_jsl()</EM> を使ってJSLを実行できる(Pythonを起点とした書き方)
- JSL環境からは、
Python Submit() を使ってPythonコードを実行できる(JSLを起点とした書き方)
- Quel que soit le logiciel par lequel vous commencez, vous pouvez obtenir des résultats quasiment identiques ; le choix dépend du fait que le traitement principal soit effectué côté Python ou côté JMP.
Dans le prochain épisode ( Partie 3 ), nous montrerons un exemple de transformation de ces scripts fixes en outils polyvalents que n'importe qui peut utiliser à plusieurs reprises en ajoutant des boîtes de dialogue pour la sélection des colonnes et la saisie des paramètres à l'aide de JSL.
par Naohiro Masukawa (JMP Japon)
Naohiro Masukawa - Communauté d'utilisateurs JMP