L'obiettivo dello snippet di seguito è tracciare Attuale contro Volta . Ho più dispositivi differenziati da Seriale .
Su GraphBuilder, raggruppo i file Seriale per "pagine". Poiché ho un numero variabile di dispositivi, ho un numero variabile di pagine.
Nell'impostazione della scala, ho una riga di "spedizione" per numero di pagina (dispositivo), quindi di seguito ho quattro righe di spedizione per aggiornare i quattro grafici per ciascun dispositivo.
Come posso implementare le stesse impostazioni di scala e grafico in tutte le pagine di GraphBuilder? Grazie!
//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);})
);
);
Molto probabilmente potresti usare Eval(EvalExpr()) con Expr() Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute , ma proverei a risolverlo molto probabilmente con XPath (o un metodo simile senza XPath) perché è più flessibile e più facile da modificare (secondo me).
Di seguito è riportato un esempio con la tabella Big Class che utilizza :age come colonna della pagina e modifica dell'asse x (:weight) min, max e inc. Ha anche alcune stampe di debug e per qualche motivo ci sono 7 scalebox ma solo 6 gruppi
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);