Im vorherigen Teil ( Teil 1 ) haben wir den Vorteil der integrierten Python-Funktion von JMP vorgestellt. Diese ermöglicht es, Python-Code direkt in JMP zu schreiben und so die Stärken beider Tools zu ergänzen. Beispielsweise können Sie mit Python das Spektrum der Analysemethoden erweitern und die Ergebnisse anschließend mit JMP untersuchen und visualisieren.
Diesmal werden wir uns mit der Beziehung zwischen JSL (JMP Scripting Language), der proprietären Sprache von JMP, und Python befassen.
Die Python-Integration von JMP ermöglicht es Ihnen, JSL aus Python-Code aufzurufen und umgekehrt. Mit anderen Worten: Sie können denselben Prozess sowohl von Python als auch von JSL aus starten.
P0.png
In dieser Sitzung werden wir anhand von Beispiel 1 aus der vorherigen Sitzung (Datenerhebung bei der Weltbank) als Fallbeispiel diese beiden Schreibmethoden nebeneinander aufzeigen und die Merkmale der jeweiligen Methode sowie die Überlegungen zu ihrer angemessenen Anwendung erläutern.
Ausführen von JSL-Skripten aus einer Python-Umgebung (ein Python-basierter Ansatz)
Im vorherigen Beispiel haben wir Python-Code gezeigt, um Wirtschaftsindikatoren der Weltbank als JMP-Datentabelle zu extrahieren. Analysten können die extrahierten Daten anschließend visualisieren und analysieren, indem sie Blasendiagramme und andere Optionen aus dem JMP-Menü auswählen.
In diesem Fall könnte man sich fragen, ob es möglich ist, nicht nur die Datenextraktion, sondern auch die Erstellung von JMP-Analyseberichten zu programmieren.
Ich werde dies am vorherigen Beispiel der Erstellung eines Blasendiagrammberichts veranschaulichen.
Die Abbildung unten zeigt den Bericht mit dem Blasendiagramm (Ausgabe), wobei die Optionen [Trajektorienlinien] > [Alle] und [Beschriftungen] > [Alle] über die rote Dreiecksschaltfläche oben links ausgewählt sind. Diese Option zeigt den Ländernamen für jede Blase an und visualisiert deren Bewegungsverlauf mit Linien, wenn der Jahrestrend animiert ist.
Wenn Sie für diesen Bericht [Skript speichern] > [Zum Skriptfenster wechseln] auswählen, öffnet sich ein JSL-Skriptfenster, in dem Sie das Skript anzeigen können, das die Spaltenspezifikationen und Optionen für diesen Bericht codiert.
P1.png
Dieses Skript (JSL) kann zusammen mit dem Python-Code im Python-Skripteditor geschrieben und direkt ausgeführt werden. Die Abbildung unten zeigt das zuvor gezeigte Python-Skript (Example1-1_WorldBank.py) mit dem hinzugefügten JSL-Ausführungscode (Example1-2_WorldBank.py).
jmpパッケージの run_jsl() の中にJSLを記述すると、Python環境の中でJSLスクリプトを実行することができます。
Wenn Sie `run_jsl (''' ... ''')` mit drei einfachen Anführungszeichen verwenden, wird alles, was Sie dazwischen schreiben, einschließlich Zeilenumbrüchen, als Zeichenkette behandelt.。
P2.png
Der rote Bereich im obigen Diagramm stellt den Code dar, der das hinzugefügte JSL ausführt. Ich möchte den JSL-Teil kurz erläutern.
最初の Current Data Table() は、現在アクティブになっているデータテーブルを返すコマンドです。この例では、直前に世界銀行の経済指標をJMPのデータテーブルとして取り込んでいるので、そのテーブルを dtという変数に格納しています。また、Set Name() で、データテーブル名を「World Bank Data」に変更しています。
dt = Current Data Table();
dt << Set Name( "World Bank Data" );
Der nachfolgende Befehl ändert das Anzeigeformat (Format) der Datentabelle. Dies wird als Beispiel für JSL-Syntax gezeigt; die weitere Verarbeitung funktioniert auch ohne diesen Befehl.
Der letzte Abschnitt ist der Abschnitt für das Blasendiagramm. Hier legen wir fest, welche Spalten der aktuellen Variable `dt` (die wir zuvor definiert haben) für X, Y, Blasengröße usw. zugewiesen werden und welche Optionen beim Ausführen des Diagramms verwendet werden sollen. Der zuvor über [Skript speichern] > [Zum Skriptfenster wechseln] gespeicherte JSL-Code funktioniert unverändert. Die folgende Version ist jedoch vereinfacht und enthält nur die notwendigen Befehle.</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" ),
);
Durch Ausführen dieses Codes können Sie Daten von der Weltbank laden und in einem Schritt einen Blasendiagrammbericht anzeigen lassen.
Funktionen zur Interaktion mit Python in einer JSL-Umgebung (Schreiben von Code ausgehend von JSL)
Bisher haben wir gezeigt, dass man JSL aus einer Python-Umgebung ausführen kann, aber umgekehrt kann man auch Python-Code aus einer JSL-Umgebung ausführen.
Hier ist der gleiche Code wie zuvor (Example1-2_WorldBank.py), neu geschrieben als JSL-Code (Example1-2_WorldBank.jsl).
JSLの Python Submit() 関数を使うと、引数として渡した文字列の中に書かれたPythonコードを実行できます。今回は、先ほどのPythonスクリプトのうちPythonのコード部分を、Python Submit() の中に入れただけです。
Die Zeichenkette, die Sie an die Submit()-Funktion von Python übergeben, lautet "\[ undIndem der Text in `]\"` eingeschlossen wird, kann alles, was darin steht, als Text behandelt werden.
P3.png
Wenn Sie für dieses JSL-Skript [Bearbeiten] > [Skript ausführen] auswählen, erhalten Sie die gleiche Ausgabe wie bei einem Python-Skript.
Welchen Ansatz sollte ich wählen: Code schreiben, der mit Python (.py) beginnt, oder Code schreiben, der mit JSL (.jsl) beginnt?
Die Wahl hängt davon ab, welche Methode im Mittelpunkt der Verarbeitung steht .
Verwenden Sie eine .py-Datei, wenn die Hauptanalyse Python-Bibliotheken einbezieht. Verwenden Sie eine .jsl-Datei, wenn Sie Dialoge zur Spaltenauswahl erstellen oder komplexe JMP-Berichte generieren müssen.
Es gibt Fälle, in denen es vorzuziehen ist, Code mit der Endung Python (.py) zu schreiben.
- Die Analyse wird primär Python-Bibliotheken wie scikit-learn nutzen.
- Dies richtet sich an Personen, die mit Python-Code vertraut sind.
Wann ist es besser, Code mit JSL (.jsl) zu beginnen?
- Der Betrieb von JMP wird für den Gesamtprozess von zentraler Bedeutung sein.
- Automatisieren und individualisieren Sie die Anzeige von JMP-Berichten nach der Analyse.
- Um es zu einem vielseitigeren Werkzeug zu machen, sollten Dialogfelder zur Spaltenauswahl und Parametereingabe hinzugefügt werden.
Abschließend
In diesem Artikel haben wir die Beziehung zwischen Python und JSL in den Python-Integrationsfunktionen von JMP untersucht. Die wichtigsten Punkte sind folgende:
- Python環境からは、jmpパッケージの
<EM>run_jsl()</EM> を使ってJSLを実行できる(Pythonを起点とした書き方)
- JSL環境からは、
Python Submit() を使ってPythonコードを実行できる(JSLを起点とした書き方)
- Unabhängig davon, womit man beginnt, lassen sich nahezu die gleichen Ergebnisse erzielen; die Wahl hängt davon ab, ob die Hauptverarbeitung auf der Python-Seite oder auf der JMP-Seite erfolgt.
Im nächsten Teil ( Teil 3 ) zeigen wir anhand eines Beispiels, wie man diese festen Skripte in vielseitige Werkzeuge umwandeln kann, die jeder wiederholt verwenden kann, indem man mithilfe von JSL Dialoge zur Spaltenauswahl und Parametereingabe hinzufügt.
von Naohiro Masukawa (JMP Japan)
Naohiro Masukawa – JMP-Benutzergemeinschaft