<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tengo curiosidad por ver si hay una mejor manera de hacer el script que está abajo. Actualmente tengo una función, tome la entrada del usuario y haga una lista de todos los valores de Y posibles para la siguiente gráfica. Luego se llama a la siguiente función para crear los gráficos. Me gustaría saber si hay alguna forma en la que podría acortar drásticamente la cantidad de código que se necesita al usar uno o dos constructores de gráficos en lugar de los 6 enunciados que contienen sus propios constructores de gráficos
HALTbuildGraph = Función ({} , { tempcol = "" , vibcol = "" } ,
Si ( N artículos ( LogCheckBox << Ser seleccionado ()) == 1 , // si los archivos de registro fueron importados
para ( yo = 1 , yo <= n Col () , yo ++,
Si ( contiene ( carbonizarse ( nombre de columna ( yo )) , "Temperatura" ) Y contiene ( carbonizarse ( nombre de columna ( yo )) , "Punto fijo" ) ,
tempcol = carbonizarse ( nombre de columna ( yo )) ,
/ * else if * / contiene ( carbonizarse ( nombre de columna ( yo )) , "Vib" ) Y contiene ( carbonizarse ( nombre de columna ( yo )) , "Punto fijo" ) ,
vibcol = carbonizarse ( nombre de columna ( yo )) ;
) ;
) ;
Si ( tempcol == "" , // si no se encontró la columna del punto de ajuste de temperatura.
impresión ( "Error 111a: No se encontró el punto de ajuste de temperatura" ) ;
lanzar ()
) ;
Si ( vibcol == "" , // si no se encontró la columna de punto de ajuste de vibración.
impresión ( "Error 111b: No se encontró el punto de ajuste de vibración" ) ;
lanzar () ;
) ;
Si ( N artículos ( lista de grafos ) == 1 ,
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 1 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 1 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ,
/ * else if * / N artículos ( lista de grafos ) == 2 ,
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 1 ]) ) ,
Y ( columna ( lista de grafos El 2 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 1 ] || "&" || lista de grafos El 2 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ,
/ * else if * / N artículos ( lista de grafos ) == 3 ,
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 1 ]) ) ,
Y ( columna ( lista de grafos El 2 ]) ) ,
Y ( columna ( lista de grafos El 3 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 5 ) ,
Línea ( X , Y , Leyenda ( 31 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 1 ] || " || lista de grafos El 2 ] || ", &" || lista de grafos El 3 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ,
/ * else if * / N artículos ( lista de grafos ) == 4 ,
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 1 ]) ) ,
Y ( columna ( lista de grafos El 2 ]) ) ,
Y ( columna ( lista de grafos El 3 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 5 ) ,
Línea ( X , Y , Leyenda ( 31 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 1 ] || " || lista de grafos El 2 ] || ", &" || lista de grafos El 3 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ;
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 4 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 4 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ,
/ * else if * / N artículos ( lista de grafos ) == 5 ,
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 1 ]) ) ,
Y ( columna ( lista de grafos El 2 ]) ) ,
Y ( columna ( lista de grafos El 3 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 5 ) ,
Línea ( X , Y , Leyenda ( 31 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 1 ] || " || lista de grafos El 2 ] || ", &" || lista de grafos El 3 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ;
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 4 ]) ) ,
Y ( columna ( lista de grafos El 5 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 4 ] || "&" || lista de grafos El 5 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ,
/ * else if * / N artículos ( lista de grafos ) == 6 ,
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 1 ]) ) ,
Y ( columna ( lista de grafos El 2 ]) ) ,
Y ( columna ( lista de grafos El 3 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 5 ) ,
Línea ( X , Y , Leyenda ( 31 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 1 ] || " || lista de grafos El 2 ] || ", &" || lista de grafos El 3 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ;
gb = Generador de gráficos (
Variables (
X ( : Tiempo de prueba ) ,
Y ( columna ( tempcol ) ) ,
Y ( columna ( vibcol ) ) ,
Y ( columna ( lista de grafos El 4 ]) ) ,
Y ( columna ( lista de grafos El 5 ]) ) ,
Y ( columna ( lista de grafos El 6 ]) )
) ,
Elementos (
Posición ( 1 , 1 ) ,
Línea ( X , Y , Leyenda ( 27 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 2 ) ,
Línea ( X , Y , Leyenda ( 28 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 3 ) ,
Línea ( X , Y , Leyenda ( 29 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 4 ) ,
Línea ( X , Y , Leyenda ( 30 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
Elementos (
Posición ( 1 , 5 ) ,
Línea ( X , Y , Leyenda ( 31 ) , Orden de fila ( 0 ) , Estadística de resumen ( "Media" ) )
) ,
SendToReport (
Envío ({} , "título del gráfico" , Cuadro de edición de texto , { Establecer texto ( lista de grafos El 4 ] || "&" || lista de grafos El 5 ])}) ;
) ;
) ;
gb_rpt = informe ( gb ) ;
gb_rpt El LegendBox ( 1 )] << borrar ;
gb_rpt El Cuadro de imagen ( 1 )] << Ventana de diario ;
gb << Cerrar ventana ( nosave ) ;
) ,
Continúa pero creo que te haces una idea ...
Básicamente, he intentado usar sentencias if en la sección Variables del generador de gráficos, pero parece que a JMP no le gusta nada. Solo busco una forma de acortar mi código y facilitar su lectura.
Gracias de nuevo por compartir ese ejemplo y esos comandos. Aquí es como se ve el código anterior ahora. Yo diría que es mucho mejor de lo que solía ser.
HALTbuildGraph = Función ({} , { tempcol = "" , vibcol = "" } , // 11
Si ( N artículos ( LogCheckBox << Ser seleccionado ()) == 1 , // si los archivos de registro fueron importados
para ( yo = 1 , yo <= n Col () , yo ++,
Si ( contiene ( carbonizarse ( nombre de columna ( yo )) , "Temperatura" ) Y contiene ( carbonizarse ( nombre de columna ( yo )) , "Punto fijo" ) ,
tempcol = carbonizarse ( nombre de columna ( yo )) ,
/ * else if * / contiene ( carbonizarse ( nombre de columna ( yo )) , "Vib" ) Y contiene ( carbonizarse ( nombre de columna ( yo )) , "Punto fijo" ) ,
vibcol = carbonizarse ( nombre de columna ( yo )) ;
) ;
) ;
Si ( tempcol == "" , // si no se encontró la columna del punto de ajuste de temperatura.
impresión ( "Error 111a: No se encontró el punto de ajuste de temperatura" ) ;
lanzar ()
) ;
Si ( vibcol == "" , // si no se encontró la columna de punto de ajuste de vibración.
impresión ( "Error 111b: No se encontró el punto de ajuste de vibración" ) ;
lanzar () ;
) ;
gb_expr = evalinsert ( "\ [
gb = Graph Builder (
Variables (
X (: Tiempo de prueba),
Y (columna (tempcol)),
Y (columna (vibcol)),
] \ " ) ;
para ( yo = 1 , yo <= N artículos ( lista de grafos ) Y yo <= 3 , yo ++,
Si ( yo == N artículos ( lista de grafos ) | yo == 3 ,
gb_expr = gb_expr || evalinsert ( "\ [
Y (lista de grafos [^ i ^])
)
] \ " ) ,
/*más*/
gb_expr = gb_expr || evalinsert ( "\ [
Y (lista de grafos [^ i ^]),
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
Elementos(
Posición (1, 1),
Línea (X, Y, Leyenda (27), Orden de fila (0), Estadística de resumen ("Media"))
)
Elementos(
Posición (1, 2),
Línea (X, Y, Leyenda (28), Orden de fila (0), Estadística de resumen ("Media"))
)
] \ " ) ;
para ( yo = 1 , yo <= N artículos ( lista de grafos ) Y yo <= 3 , yo ++,
gb_expr = gb_expr || evalinsert ( "\ [
Elementos(
Posición (1, 2 + ^ i ^),
Línea (X, Y, Leyenda (28 + ^ i ^), Orden de fila (0), Estadística resumida ("Media")
)
] \ " ) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
SendToReport (
Despacho ({}, "título del gráfico", cuadro de edición de texto, {Establecer texto (lista de gráficos [1]
] \ " ) ;
Si ( N artículos ( lista de grafos ) == 1 ,
gb_expr = gb_expr || evalinsert ( "\ [)});
);
] \ " ) ;
) ;
para ( yo = 2 , yo <= N artículos ( lista de grafos ) Y yo <= 3 , yo ++,
Si ( yo == N artículos ( lista de grafos ) | yo == 3 ,
gb_expr = gb_expr || evalinsert ( "\ [||", & "|| graphlist [^ i ^])});
);
] \ " ) ,
/*más*/
gb_expr = gb_expr || evalinsert ( "\ [||", "|| graphlist [^ i ^]
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
);
gb_rpt = informe (gb);
gb_rpt [LegendBox (1)] << eliminar;
gb_rpt [PictureBox (1)] << Ventana del diario;
gb << cerrar ventana (nosave)
] \ " ) ;
evaluar ( analizar gramaticalmente ( gb_expr )) ;
Si ( N artículos ( lista de grafos ) > 3 ,
gb_expr = evalinsert ( "\ [
gb = Graph Builder (
Variables (
X (: Tiempo de prueba),
Y (columna (tempcol)),
Y (columna (vibcol)),
] \ " ) ;
para ( yo = 4 , yo <= N artículos ( lista de grafos ) , yo ++,
Si ( yo == N artículos ( lista de grafos ) ,
gb_expr = gb_expr || evalinsert ( "\ [
Y (lista de grafos [^ i ^])
)
] \ " ) ,
/*más*/
gb_expr = gb_expr || evalinsert ( "\ [
Y (lista de grafos [^ i ^]),
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
Elementos(
Posición (1, 1),
Línea (X, Y, Leyenda (27), Orden de fila (0), Estadística de resumen ("Media"))
)
Elementos(
Posición (1, 2),
Línea (X, Y, Leyenda (28), Orden de fila (0), Estadística de resumen ("Media"))
)
] \ " ) ;
para ( yo = 4 , yo <= N artículos ( lista de grafos ) , yo ++,
gb_expr = gb_expr || evalinsert ( "\ [
Elementos(
Posición (1, 2 + ^ i ^ -3),
Línea (X, Y, Leyenda (28 + ^ i ^ -3), Orden de fila (0), Estadística de resumen ("Media"))
)
] \ " ) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
SendToReport (
Despacho ({}, "título del gráfico", cuadro de edición de texto, {Establecer texto (lista de gráficos [4]
] \ " ) ;
Si ( N artículos ( lista de grafos ) == 4 ,
gb_expr = gb_expr || evalinsert ( "\ [)});
);
] \ " ) ;
) ;
para ( yo = 5 , yo <= N artículos ( lista de grafos ) , yo ++,
Si ( yo == N artículos ( lista de grafos ) ,
gb_expr = gb_expr || evalinsert ( "\ [||", & "|| graphlist [^ i ^])});
);
] \ " ) ,
/*más*/
gb_expr = gb_expr || evalinsert ( "\ [||", "|| graphlist [^ i ^]
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
);
gb_rpt = informe (gb);
gb_rpt [LegendBox (1)] << eliminar;
gb_rpt [PictureBox (1)] << Ventana del diario;
gb << cerrar ventana (nosave)
] \ " ) ;
evaluar ( analizar gramaticalmente ( gb_expr )) ;
) ,