L'objectif de l'extrait ci-dessous est de tracer Current contre Time . J'ai plusieurs appareils différenciés par Serial .
Sur GraphBuilder, je regroupe les Serial par "pages". Comme j’ai un nombre variable d’appareils, j’ai un nombre variable de pages.
Lors du réglage de l'échelle, j'ai une ligne de « répartition » par nombre de pages (appareil) - j'ai donc ci-dessous quatre lignes de répartition 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 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);