Necesito ayuda con un script para transmitir las líneas del eje Y en Graph Builder cuando se utiliza la función de diseño "Página" y se mantiene el eje Y independienteHola a todos,
Si bien la nueva capacidad de apilar los paneles en Graph Builder es sorprendente, una clave para esta maravilla es mantener el eje Y independiente entre sí. Sin embargo, cuando tienes muchos paneles (niveles) y quieres agregar líneas de cuadrícula en el eje Y, tienes que hacerlo una por una, lo cual es horrible. ¿Tienes alguna idea sobre un script que te permita indexar cada panel y agregar líneas de cuadrícula de forma independiente?
Aquí puede ver que utilicé el método de la vieja escuela (en el conjunto de datos de clase grande) para copiar las configuraciones de los ejes y transmitir un pegado de ellas y, si bien agrega las líneas de cuadrícula, establece todos los rangos del eje Y igual que las configuraciones del panel copiadas.

¡Gracias por cualquier idea!
Steve
Automatización y scriptingExploración y visualización de datosRe: Necesito ayuda con un script para transmitir las líneas del eje Y en Graph Builder cuando se usa la función de diseño "Página" y se mantiene el eje Y independienteUtilice XPath para obtener la referencia a los cuadros de ejes que le interesan (eje X, eje Y o ambos) y luego haga lo que quiera con esa lista de cuadros de ejes. Este ejemplo habilita la cuadrícula principal para el eje Y en todos los cuadros de ejes
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(893, 542),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Page(:age, Levels per Row(3)), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)))
);
abs = Report(gb) << XPath("//AxisBox");
yaxis = abs[2::NItems(abs)::2];
yaxis << Show Major Grid(1);

Re: Necesito ayuda con un script para transmitir las líneas del eje Y en Graph Builder cuando se usa la función de diseño "Página" y se mantiene el eje Y independiente¡Eso fue rápido, Jarmo! Me gusta más tu solución, pero aquí hay otra forma de hacerlo usando Eval(Parse()).
Names Default To Here( 1 );
//Manually add your reference line to the top left panel of the graph builder.
//Then run this script with the graph builder report in focus.
axisList = Current Report() << XPath( "//AxisBox" );
//Grab axis specifications from vertical axis of first panel
//(vertical axes are even-numbered items; horizontal axes are odd)
axspecList = axisList[2] << Get Script();
//find the Reference Line among the other specifications
For( i = 1, i <= N Items( axspecList ), i++,
If( Left( Char( axspecList[i] ), 12 ) == "Add Ref Line",
rlindex = i;
Break();
)
);
//Reference Line specification as string
rlstr = Char( axspecList[rlindex] );
//Apply Reference Line specification to the remaining panels
For( j = 4, j <= N Items( axisList ), j = j + 2,
estr = "axisList[" || Char( j ) || "] <<" || rlstr;
Eval( Parse( estr ) );
);