En la entrega anterior ( Parte 1 ), presentamos la ventaja de usar la función de integración de Python integrada en JMP, que permite escribir código Python dentro de JMP, complementando así las fortalezas de ambas herramientas. Por ejemplo, se puede ampliar la gama de métodos de análisis con Python y explorar y visualizar los resultados con JMP.
En esta ocasión, analizaremos la relación entre JSL (JMP Scripting Language), el lenguaje propietario de JMP, y Python.
La integración de JMP con Python permite llamar a JSL desde código Python, y viceversa. En otras palabras, puedes escribir el mismo proceso tanto desde Python como desde JSL.
P0.png
En esta sesión, utilizando el Ejemplo 1 de la sesión anterior (adquisición de datos del Banco Mundial) como caso de estudio, mostraremos estos dos métodos de escritura uno al lado del otro y organizaremos las características de cada uno y el razonamiento detrás de cómo utilizarlos adecuadamente.
Ejecución de scripts JSL desde un entorno Python (escritos utilizando un enfoque basado en Python)
En el ejemplo anterior, mostramos código Python para extraer indicadores económicos del Banco Mundial y generar una tabla de datos en JMP. Los analistas pueden visualizar y analizar los datos extraídos seleccionando gráficos de burbujas y otras opciones del menú de JMP.
En ese caso, cabe preguntarse si es posible programar no solo la extracción de datos, sino también la creación de informes de análisis de JMP.
Ilustraré esto con el ejemplo anterior de creación de un informe de gráfico de burbujas.
La imagen a continuación muestra el informe del gráfico de burbujas (resultado) con las opciones [Líneas de trayectoria] > [Todas] y [Etiquetas] > [Todas] seleccionadas mediante el botón triangular rojo en la esquina superior izquierda. Esta opción muestra el nombre del país para cada burbuja y la trayectoria de su movimiento mediante líneas cuando se anima la tendencia interanual.
Si selecciona [Guardar script] > [Ir a la ventana de script] para este informe, se abrirá una ventana de script JSL donde podrá ver el script que codifica las especificaciones y opciones de las columnas para este informe.
P1.png
Este script (JSL) se puede escribir en el editor de scripts de Python junto con el código Python y ejecutarse directamente. La imagen a continuación muestra el script de Python (Example1-1_WorldBank.py) mostrado anteriormente con el código de ejecución JSL añadido (Example1-2_WorldBank.py).
jmpパッケージの run_jsl() の中にJSLを記述すると、Python環境の中でJSLスクリプトを実行することができます。
Cuando uses `run_jsl ('' ... ''')` con tres comillas simples, todo lo que escribas entre ellas, incluidos los saltos de línea, se tratará como una cadena.。
P2.png
La sección roja del diagrama anterior es el código que ejecuta el JSL añadido. Permítanme explicar brevemente la parte del JSL.
最初の Current Data Table() は、現在アクティブになっているデータテーブルを返すコマンドです。この例では、直前に世界銀行の経済指標をJMPのデータテーブルとして取り込んでいるので、そのテーブルを dtという変数に格納しています。また、Set Name() で、データテーブル名を「World Bank Data」に変更しています。
dt = Current Data Table();
dt << Set Name( "World Bank Data" );
El siguiente comando modifica el formato de visualización (Formato) de la tabla de datos. Esto se muestra como un ejemplo de sintaxis JSL, y el procesamiento posterior funcionará sin ella.
La última parte corresponde a la sección del gráfico de burbujas. Aquí especificamos qué columnas asignar a la variable `dt` actual (que definimos anteriormente) para X, Y, tamaño de burbuja, etc., y qué opciones usar al ejecutar el gráfico. El código JSL guardado previamente mediante [Guardar script] > [Ir a la ventana de script] funcionará tal cual, pero a continuación se presenta una versión simplificada que incluye solo los comandos necesarios.</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" ),
);
Al ejecutar este código, podrá cargar datos del Banco Mundial y mostrar un gráfico de burbujas en un solo paso.
Funcionalidades para interactuar con Python en un entorno JSL (escribiendo código a partir de JSL)
Hasta ahora, hemos demostrado que se puede ejecutar JSL desde un entorno Python, pero, a la inversa, también se puede ejecutar código Python desde un entorno JSL.
Aquí está el mismo código que antes (Example1-2_WorldBank.py), reescrito como código JSL (Example1-2_WorldBank.jsl).
JSLの Python Submit() 関数を使うと、引数として渡した文字列の中に書かれたPythonコードを実行できます。今回は、先ほどのPythonスクリプトのうちPythonのコード部分を、Python Submit() の中に入れただけです。
La cadena que pasas a Submit() de Python es "\[ yAl encerrar el texto entre `]\"`, todo lo que esté escrito dentro puede ser tratado como texto.
P3.png
Si selecciona [Editar] > [Ejecutar script] para este script JSL, obtendrá el mismo resultado que con un script de Python.
¿Qué enfoque debo usar: escribir el código comenzando con Python (.py) o escribir el código comenzando con JSL (.jsl)?
La elección depende de cuál sea el método principal en el que se centre el procesamiento .
Utilice un archivo .py si el análisis principal involucra bibliotecas de Python. Utilice un archivo .jsl si necesita crear cuadros de diálogo para seleccionar columnas o generar informes JMP complejos.
Hay casos en los que es preferible escribir el código comenzando con Python (.py).
- El análisis utilizará principalmente bibliotecas de Python como scikit-learn.
- Esto está dirigido a personas familiarizadas con el código Python.
¿Cuándo es mejor escribir código comenzando con JSL (.jsl)?
- El funcionamiento de JMP será fundamental para el proceso general.
- Automatice y personalice la visualización de los informes de JMP después del análisis.
- Para convertirla en una herramienta más versátil, añada cuadros de diálogo para la selección de columnas y la introducción de parámetros.
En conclusión
En este artículo, analizamos la relación entre Python y JSL en las funciones de integración de Python de JMP. Los puntos clave son los siguientes:
- Python環境からは、jmpパッケージの
<EM>ejecutar_jsl()</EM> を使ってJSLを実行できる(Pythonを起点とした書き方)
- JSL環境からは、
Python Submit() を使ってPythonコードを実行できる(JSLを起点とした書き方)
- Independientemente de cuál elijas para empezar, puedes conseguir prácticamente los mismos resultados; la elección depende de si el procesamiento principal se realiza en Python o en JMP.
En la próxima entrega ( Parte 3 ), mostraremos un ejemplo de cómo transformar estos scripts fijos en herramientas versátiles que cualquiera puede usar repetidamente, agregando cuadros de diálogo para la selección de columnas y la entrada de parámetros mediante JSL.
por Naohiro Masukawa (JMP Japón)
Naohiro Masukawa - Comunidad de usuarios de JMP