De una sola manoMi script tiene una lista de valores Y para trazar. Tengo un cuadro de diálogo para seleccionar las columnas "X" y "Por" para el gráfico OneWay. Luego quiero formatear la configuración del eje, pero nombra los gráficos "Análisis unidireccional de Y1" seguido de la columna del eje X, por ejemplo "Por oblea", y luego el valor Por, por ejemplo "Lote=1234"... En total sería "Análisis unidireccional de Y1 por lote de oblea=1234".
¿Hay alguna manera de incluir eso en la cláusula de envío para poder automatizar el formato del eje?
list_y = { "Y1", "Y2" };
dlg = Column Dialog( x = ColList( "X", Max Col( 1 ) ));
if(dlg["Button"] == 1,
xCol = dlg["x"];);
dlg = Column Dialog( by = ColList( "By", Max Col( 7 ) ));
if(dlg["Button"] == 1,
byCol = dlg["by"]);
OneWay( Y( Eval( list_y ) ), X( Eval( xCol ) ), By( Eval( byCol ) ),
SendToReport(
Dispatch({"Oneway Analysis of Y1"},"1",ScaleBox,{Scale( "Log" ),Format( "Scientific", 12 ),Inc( 1 ),Minor Ticks( 8 ),Show Minor Grid( 1 ),Show Major Grid ( 1 )}),
Dispatch({"Oneway Analysis of Y2"},"1",ScaleBox,{Scale( "Log" ),Format( "Scientific", 12 ),Inc( 1 ),Minor Ticks( 8 ),Show Minor Grid( 1 ),Show Major Grid ( 1 )})
));Re: UnidireccionalPuede que le resulte más fácil aplicar el formato como parte de las propiedades de las columnas en la tabla de datos, si no le importa que todos los gráficos (y la tabla de datos) utilicen el mismo formato para cada columna.
Re: UnidireccionalPuede usar xpath para examinar también el título del cuadro de esquema para determinar qué respuesta se está trazando y luego establecer condicionalmente la configuración del eje para la respuesta correspondiente. Esto se vuelve bastante complicado con entre 20 y 40 respuestas potenciales.Re: Unidireccional¡Gracias! Esta es una funcionalidad realmente interesante que no conocía.
En mi código, tengo entre 20 y 40 columnas para trazar en la lista y, y tienen diferentes necesidades de formato del eje y. Su solución es perfecta para actualizar todos los mismos formatos. ¿Puede la siguiente metodología prestarse a un formato específico de gráficos individuales?
Re: UnidireccionalUtilice xpath para seleccionar todos los objetos Oneway y luego envíe el mensaje de Despacho a todos ellos a la vez.No tengo sus datos, pero funcionó magníficamente con los datos de Big Class en la biblioteca de datos de muestra, incluso si tiene una variable By.Esto *debería* funcionar directamente:
list_y = {"Y1", "Y2"};
dlg = Column Dialog( x = ColList( "X", Max Col( 1 ) ) );
If( dlg["Button"] == 1,
xCol = dlg["x"]
);
dlg = Column Dialog( by = ColList( "By", Max Col( 7 ) ) );
If( dlg["Button"] == 1,
byCol = dlg["by"]
);
//Name the oneway analysis object 'tmp'
tmp = OneWay( Y( Eval( list_y ) ), X( Eval( xCol ) ), By( Eval( byCol ) ) );
//get the window containing the one-way analysis
win = tmp << report;
//Select all the oneway objects and alter all the y-axes
(win << xpath( "//OutlineBox[@helpKey='Oneway Report']" )) << Dispatch(
{},
"1",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Inc( 1 ), Minor Ticks( 8 ), Show Minor Grid( 1 ), Show Major Grid( 1 )}
);
Aquí hay otro ejemplo con Big Class:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = (dt << Oneway( Y( {:height, :weight} ), X( :age ), By(:Sex) )) << Report;
(win << xpath( "//OutlineBox[@helpKey='Oneway Report']" )) << Dispatch(
{},
"1",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Inc( 1 ), Minor Ticks( 8 ), Show Minor Grid( 1 ), Show Major Grid( 1 )}
);