Re: Evite repeticiones en el script, Graph Builder en particularSer capaz de escribir sus propias funciones puede ser útil para usted. Mira esto desde @Craige_Hales en el libro de cocina de JSL:
https://community.jmp.com/t5/JSL-Cookbook/Write-Your-Own-Functions/ta-p/49052
Re: Evite repeticiones en el script, Graph Builder en particularEste es un enfoque que podría ayudar:
Poner código común en cadenas separadas. Si hay muchas comillas dobles, use las construcciones \ [y] \ para facilitar la lectura.
Ensamble el código del generador de gráficos (A || B || C, etc.) y ejecútelo utilizando eval (parse ()).
Aquí hay un ejemplo simple con una cadena común para dos gráficos.
dt = open("$sample_data\Airline Delays.jmp");
common_str =
"dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Elapsed Time ), Y( :Distance ), Overlay( :Airline ) ),";
gb1_str = evalinsert(
"gb1 = ^common_str^
Elements( Area( X, Y, Legend( 21 ) ) )
)");
gb2_str = evalinsert(
"gb2 = ^common_str^
Elements( Points( X, Y, Legend( 11 ) ) )
)");
eval(parse(gb1_str));
eval(parse(gb2_str));
Re: Evite repeticiones en el script, Graph Builder en particular¡Gracias! ¡Ese es un muy buen ejemplo y solución!Re: Evite repeticiones en el script, Graph Builder en particular¡Gracias!
Evite repeticiones en el script, Graph Builder en particularHola,
Tengo un script para reproducir tramas de Graph Builder. Tres archivos de script, cada uno debe reproducir los resultados del generador de gráficos para 15 variables diferentes. Básicamente, utilicé el Generador de gráficos para trazar los datos de la manera que quería, guardé el script detrás de él y lo repetí para las siguientes 14 variables. Como resultado, tengo algo como esto:
// el primer archivo de script dt = currentdatatable (); obj1 = dt << GraphBuilder (); obj2 = dt << GraphBuilder (); ... obj15 = dt << GraphBuilder (); // Preocupación: repetición de partes grandes en el código de cada objetoQuiero mantener la configuración de las características de Graph Bulder para todos los objetos (15 en total), pero evitar repeticiones dentro del código (algunos ejemplos a continuación). ¿Hay alguna manera de definir esas partes del código al comienzo del script (o en un archivo separado (porque tengo otros archivos de script que usan las mismas partes del código) y llamarlo mientras ejecuto el código) y usar esos como las variables dentro del código para hacer que el código se vea más simple, más corto? Esta manera es eficiente también si quiero hacer algunos cambios. La otra pregunta: ¿alguna sugerencia sobre cómo podría mejorar mis habilidades de secuencias de comandos?
Muchas gracias.
Ejemplos:
Despacho ({}, "400", LegendBox, {Establecer título (""), fuente ("Segoe UI", 11, "Normal"), Posición de leyenda ({8, [1, 5, 9, 3, 6, 11], 9, [0, 4, 8], 10, [2, 7, 10]}), Posición ({1, 5, 9, 3, 6, 11, 0, 4, 8, 2, 7, 10})})o
Despacho ({}, "400", ScaleBox, {Modelo de leyenda (8, Nombre de nivel (0, "Promedios de variable 3", ID de elemento ("3", 1)), Nombre de nivel (1, "Promedios de variable 5", ID del artículo ("5", 1)), Nombre del nivel (2, "Promedios de la variable 6", ID del artículo ("6", 1)), Nombre del nivel (3, "Desviación estándar de la variable 3", ID del artículo ("3 ", 2)), Nombre del nivel (4," Desviación estándar variable 5 ", ID del elemento (" 5 ", 2)), Nombre del nivel (5," Desviación estándar variable 6 ", ID del elemento (" 6 ", 2) ), Base (0, 0, 0, ID del artículo ("3", 1)), Base (1, 0, 1, ID del artículo ("5", 1)), Base (2, 0, 2, ID del artículo ("6", 1)), Base (3, 0, 0, ID del artículo ("3", 2)), Base (4, 0, 0, ID del artículo ("5", 2)), Base (5 , 0, 0, ID del artículo ("6", 2)), Propiedades (0, {Color de línea (53), Ancho de línea (4), Marcador ("FilledCircle"), Tamaño del marcador (6), degradado ({Escala Valores ([0 1]), Ancho (9), N Etiquetas (6)})}, ID del artículo ("3", 1)), Propiedades (1, {Color de línea (56), Ancho de línea (4), Marcador ("FilledCircle"), Tamaño del marcador (6), gradiente ({Valores de escala ([0 1]), Ancho (9), N etiquetas (6)})}, ID del artículo (" 5 ", 1)), Propiedades (2, {Color de línea (38), Ancho de línea (4), Marcador (" Círculo relleno "), Tamaño de marcador (6), gradiente ({Valores de escala ([0 1]), Ancho (9), N etiquetas (6)})}, ID del artículo ("6", 1)), Propiedades (3, {Color de línea (53), Ancho de línea (4)}, ID del artículo ("3", 2 )), Propiedades (4, {Color de línea (56), Ancho de línea (4)}, ID de elemento ("5", 2)), Propiedades (5, {Color de línea (38), Ancho de línea (4)}, ID de elemento ("6", 2)), Propiedades (-1, {Color de línea (13), Ancho de línea (4), Marcador ("FilledCircle"), Tamaño de marcador (6), gradiente ({Valores de escala ([0 1]), Ancho (9), N Etiquetas (6)})}, ID del artículo ("4", 1)), Propiedades (-1, {Color de línea (13), Ancho de línea (4)}, ID del artículo ("4", 2)), Base (-1, 0, 1, ID de elemento ("5", 1)), Nombre de nivel (-1, "Promedio", ID de elemento ("Media", 1)), Base (-1, 0, 0, ID del artículo ("Desviación estándar", 1)), Propiedades (-1, {Color de línea (3), Marcador ("FilledCircle"), Tamaño del marcador (6), gradiente ({Escala Valores ([0 1]), Ancho (9), N Etiquetas (6)})}, ID del artículo ("Media", 1)), Propiedades (-1, {Línea Co lor (1), Ancho de línea (4)}, ID del artículo ("Desviación estándar", 1)), Base (-1, 0, 0, ID del artículo ("Intervalo de confianza del 95%", 1)), Propiedades (- 1, {Color de línea (32), Ancho de línea (2), degradado ({Valores de escala ([0 1]), Ancho (9), N etiquetas (6)})}, ID de elemento ("intervalo de confianza del 95%" , 1))), Modelo de leyenda (9, Nombre de nivel (0, "Valores individuales de variable 3", ID de elemento ("3", 1)), Nombre de nivel (1, "Valores individuales de variable 5", ID de elemento (" 5 ", 1)), Nombre de nivel (2," Variable 6 Valores individuales ", ID de elemento (" 6 ", 1)), Base (0, 0, 0, ID de elemento (" 3 ", 1)), Base (1, 0, 1, ID del artículo ("5", 1)), Base (2, 0, 2, ID del artículo ("6", 1)), Propiedades (0, {Color de línea (37), Ancho de línea (4)}, ID del artículo ("3", 1)), Propiedades (1, {Color de línea (40), Ancho de línea (4)}, ID del artículo ("5", 1)), Propiedades (2, { Color de línea (38), Ancho de línea (4)}, ID de artículo ("6", 1)), Nombre de nivel (-1, "Valores individuales variables 4", ID de artículo ("4", 1)), Base ( -1, 0, 0, ID del artículo ("4", 1)), Propiedades (-1, {Color de línea (42), Ancho de línea (4)}, Artículo I D ("4", 1)), Nombre del nivel (-1, "Valores individuales", ID del artículo ("Variable principal", 1)), Propiedades (-1, {Color de línea (5)}, ID del artículo ( "Main-Variable", 1)), Propiedades (-1, {Color de línea (5), degradado ({Valores de escala ([0 1]), Ancho (9), N etiquetas (6)})}, ID del artículo ("Variable principal", 1))), Modelo de leyenda (10, Nombre de nivel (0, "Variable 3 Smooth", ID de elemento ("3", 1)), Nombre de nivel (1, "Variable 5 Smooth", ID del artículo ("5", 1)), Nombre del nivel (2, "Variable 6 Smooth", ID del artículo ("6", 1)), Propiedades (0, {Color de línea (53), Ancho de línea (4)} , ID del artículo ("3", 1)), Propiedades (1, {Color de línea (56), Ancho de línea (4)}, ID del artículo ("5", 1)), Propiedades (2, {Color de línea (38 ), Ancho de línea (4)}, ID de artículo ("6", 1)), Nombre de nivel (-1, "Variable 4 Smooth", ID de artículo ("4", 1)), Propiedades (-1, {Línea Color (13), Ancho de línea (4)}, ID de artículo ("4", 1)), Propiedades (-1, {Ancho de línea (4)}, ID de artículo ("Suave", 1)))})