L'objectif de l'extrait ci-dessous est de tracer Courant contre Temps . J'ai plusieurs appareils différenciés par En série .
Sur GraphBuilder, je regroupe les En série par "pages". Comme j'ai un nombre variable d'appareils, j'ai un nombre variable de pages.
En définissant l'échelle, j'ai une ligne "d'expédition" par nombre de pages (appareil) - donc ci-dessous, j'ai quatre lignes d'expédition pour mettre à jour les quatre graphiques pour chaque appareil.
Comment puis-je implémenter les mêmes paramètres d'échelle et de graphique sur toutes les pages de GraphBuilder ? Merci!
//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);})
);
);
Vous pourriez très probablement utiliser Eval(EvalExpr()) avec Expr() Insérer une expression dans une autre en utilisant Eval Insert, Eval Expr, Parse et Substitute , mais j'essaierais de résoudre ce problème très probablement avec XPath (ou une méthode similaire sans XPath) car c'est plus flexible et plus facile à modifier (à mon avis).
Ci-dessous, un exemple avec une table Big Class utilisant :age comme colonne de page et modifiant l'axe des x (:weight) min, max et inc. Il a également quelques impressions de débogage et pour une raison quelconque, il y a 7 boîtiers d'échelle mais seulement 6 groupes
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);