El objetivo del fragmento a continuación es trazar Actual en contra Hora . Tengo varios dispositivos diferenciados por De serie .
En GraphBuilder, agrupo los De serie por "páginas". Como tengo un número variable de dispositivos, tengo un número variable de páginas.
Al configurar la escala, tengo una línea de "despacho" por número de página (dispositivo), por lo que a continuación tengo cuatro líneas de envío para actualizar los cuatro gráficos para cada dispositivo.
¿Cómo hago para implementar la misma configuración de escala y gráfico en todas las páginas de GraphBuilder? ¡Gracias!
//t0 is minimum time
//tn is maximum time
Graph Builder(
Size(700, 5000),
Show Control Panel(0),
Variables(
X(:Column(Time)),
Y(:Column(Current)),
Page(:Serial)
),
Elements(
Points(X, Y(2), Legend(1)),
Points(X, Y(1), Legend(2))
),
SendToReport(
Dispatch({}, "Time (H)", ScaleBox(2),
{Min(t0), Max(tn), Inc(inc);}),
Dispatch({}, "Time (H)", ScaleBox(3),
{Min(t0), Max(tn), Inc(inc);}),
Dispatch({}, "Time (H)", ScaleBox(4),
{Min(t0), Max(tn), Inc(inc);}),
Dispatch({}, "Time (H)", ScaleBox(5),
{Min(t0), Max(tn), Inc(inc);})
);
);
Lo más probable es que puedas usar Eval(EvalExpr()) con Expr() Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute , pero lo más probable es que trate de resolver esto con XPath (o un método similar sin XPath) porque es más flexible y más fácil de modificar (en mi opinión).
A continuación se muestra un ejemplo con la tabla Big Class usando :edad como columna de página y modificando el eje x (:peso) min, max e inc. También tiene algunas impresiones de depuración y, por alguna razón, hay 7 cajas de escala pero solo 6 grupos.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(529, 2957),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Page(:age)),
Elements(Points(X, Y, Legend(7)), Smoother(X, Y, Legend(8)))
);
Summarize(dt, uniq_groups = by(:age));
Show(N Items(uniq_groups));
rep = Report(gb);
//Show(rep << Get XML);
scale_boxes = rep << XPath("//ScaleBox[@charID='weight']");
Show(N Items(scale_boxes)); //this has one extra when compared to groups, not sure (yet) why
scale_boxes << Min(10);
scale_boxes << Max(200);
scale_boxes << Inc(5);