Gráfico de variabilidad Bucle para todas las columnas seleccionadas con configuración especificada por el usuarioHola, chicos,
Soy bastante nuevo en JMP Scripting. Necesito un poco de ayuda. Ahora estoy diseñando una aplicación que hace lo siguiente:
Paso 1: cuando el usuario hace clic en un botón, se abre la ventana del gráfico de variabilidad, donde especificamos todas las columnas para el gráfico, la agrupación del eje x y todas las configuraciones de la tabla de datos activa actual.
obj = dt << Gráfico de variabilidad();
Paso 2: Quiero obtener los elementos especificados por el usuario en variables separadas como
col_list = lista de todas las columnas seleccionadas en obj
x_grouping = todas las x variables especificadas
.. para todos los argumentos para el gráfico de variabilidad()
Paso 3: después de extraer toda la información... Ahora ejecutaré un bucle para cada variable de columna pero
para i==1 (primera columna) trazaré el gráfico en el informe... el usuario realizará algunos cambios (por ejemplo, agregará leyenda, especificará el color de fondo, etc.)
Ahora aplicaré esta plantilla (todas las configuraciones en este gráfico) a todas las columnas y crearé un informe en una nueva ventana para cada columna.
Tengo un problema en los siguientes pasos 2 y 3: cómo extraer los argumentos para el Gráfico de variabilidad () y realizar la acción.
PD: También estoy planeando implementar esto en paralelo para otros tipos de gráficos.
Por favor guía
Automatización y scriptingRe: Bucle de gráfico de variabilidad para todas las columnas seleccionadas con configuración especificada por el usuarioA continuación se muestra un ejemplo de una forma de manejar lo que creo que desea hacer. El script está muy incompleto y necesita que se le agreguen muchas excepciones, pero debería brindarle un punto de partida.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
nw = New Window( "Col List Box Example",
modal,
H List Box(
Col List Box( all, width( 250 ) ),
V List Box(
Lineup Box( N Col( 2 ),
ybb = Button Box( "Y Col" ),
Y = Col List Box( Show( "run" ) ),
xbb = Button Box( "X Col" ),
x = Col List Box(),
Button Box( "Cancel",
nw << close window;
Throw();
),
Button Box( "OK",
ycols = y << get items;
xcols = x << get items;
)
)
)
)
);
// ycols and xcols now have been populated and you can then bring up one graph and
// let the user make the changes
nw = New Window( "Graphical Settings",
modal,
vc = dt << Variability Chart( Y( ycols[1] ), Model( "Main Effect" ), X( xcols[1] ) );
vc << on close(
// In the closing of the Variability Chart capture the script
theScript = Char( vc << get script );
);
);
// Run all of the graphs
For Each( {theCol, index},ycols, Eval( Parse( Substitute( theScript, ycols[1], theCol ) ) ) );Re: Bucle de gráfico de variabilidad para todas las columnas seleccionadas con configuración especificada por el usuario@txnelson Muchas gracias por tu opinión. En realidad, mi objetivo principal es tener una ventana de informe independiente para cada columna. Por ejemplo, si selecciono 5 columnas para Y y en el informe obtenemos un gráfico para los 5 parámetros, si agrego una leyenda, cambio el color, etc. en el primer gráfico del cuadro Esquema, quiero escribir un script para separar cada gráfico en una ventana independiente y, al mismo tiempo, usar los cambios que hice en el primer gráfico. ¿Hay alguna manera de lograr esto? Por favor, sugiera algo.
Re: Bucle de gráfico de variabilidad para todas las columnas seleccionadas con configuración especificada por el usuarioPaso 1
obj = dt << Variability Chart();
abrirá el cuadro de diálogo Gráfico de variabilidad y, cuando el usuario haga clic en Aceptar, todos los gráficos se ejecutarán en ese momento.
Sin embargo, una vez que se haya ejecutado el gráfico de variabilidad, puede consultar el script devuelto desde la plataforma del gráfico de variabilidad y obtener las X y las Y.
obj = Variability Chart( Y( :NPN1, :PNP1 ), Model( "Main Effect" ), X( :SITE ) );
theScript = char(obj << get script);
theYsList = words(word(1,substr(theScript,contains(theScript,"Y(")+2),")"),",");
theXsList = words(word(1,substr(theScript,contains(theScript,"X(")+2),")"),",");
Para el paso 2, puede consultar el gráfico mostrado directamente y obtener las distintas configuraciones. Eche un vistazo al índice de secuencias de comandos para saber cómo obtener el tamaño del marco, el mínimo y el máximo y el incremento para los distintos ejes, etc., que necesitará aplicar a las aplicaciones adicionales del gráfico de variabilidad.
Creo que el enfoque que sugiere traerá más problemas que beneficios. Le sugiero que, en lugar de utilizar el cuadro de diálogo Gráfico de variabilidad, cree su propio cuadro de diálogo, similar al cuadro de diálogo Gráfico de variabilidad, que le permitirá obtener toda la información que necesita desde el principio y, luego, los pasos 2 y 3 serán mucho más fáciles de implementar.
Consulte la Guía de secuencias de comandos para obtener información sobre cómo crear su propio cuadro de diálogo nuevo.
Re: Bucle de gráfico de variabilidad para todas las columnas seleccionadas con configuración especificada por el usuarioLa opción más sencilla sería crear usted mismo la interfaz de usuario del iniciador del gráfico de variabilidad. Si no quiere hacerlo, puede usar << Obtener script para obtener el script que se inició y analizar las columnas desde allí.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution();
dist = Current Report()[OutlineBox(1)] << Get Scriptable Object;
dist << get script;