Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Le script suivant trace des graphiques avec l'option page dans le générateur de graphiques ? Comment définir une ligne de référence horizontale, pour chaque graphique, par exemple à Poids = 80 kg et l'étiqueter (80 kg) à l'aide de JSL ?
(J'ai besoin que la ligne de référence reste même s'il y a un changement dans le nombre de graphiques tracés)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);Automatisation et scriptsFenêtresRe : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);
axis = gb << XPath( "//AxisBox" );
Summarize( page = By( :age ) );
axis[2::(2*NItems( page ))::2] << Add Ref Line( 80, "Solid", "Red", "Reference" );Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?@Mark_Bailey Cela cesse de fonctionner pour moi (JMP 16.2) si j'invoque le filtre de données local sur l'âge après le traçage, comme ci-dessous

Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Le moyen le plus simple est d'ajouter une nouvelle colonne à votre tableau de données avec la même valeur pour chacune des lignes et de l'ajouter à votre graphique. Cela fonctionnera avec les filtres
Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?@jthi votre suggestion fonctionne bien, sauf que j'aimerais que le libellé de la ligne soit à droite. Existe-t-il un moyen de modifier l'emplacement du libellé de la ligne ?
Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Je ne me souviens pas des options disponibles dans JMP16 car j'utilise principalement JMP18 de nos jours (avec un peu de JMP17 mélangé)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Ref", Numeric, Continuous, Set Each Value(80));
gb = dt << Graph Builder(
Size(528, 984),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Y(:Ref, Position(1)), Page(:age)),
Elements(
Points(X, Y(1), Legend(15)),
Smoother(X, Y(1), Legend(16)),
Line(Y(2), Legend(17))
),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 15}),
Display(:age, N Items(6))
)
),
SendToReport(
Dispatch({}, "400", ScaleBox,
{Legend Model(
17,
Level Name(0, "Ref", Item ID("Mean(Ref)", 1)),
Properties(
0,
{Line Label Properties(
{Name Label(1), Name Label Position("Last")}
)},
Item ID("Mean(Ref)", 1)
)
)}
)
)
);
Write();

Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Pas besoin de modifier le tableau de données.
Réplication du réglage de l'axe via
Link Page Axes( "Y Only" )
copie également les lignes de référence.
par exemple
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Link Page Axes( "Y Only" ),
Variables( X( :height ), Y( :weight ), Page( :sex ), Overlay( :sex ) ),
Elements( Points( X, Y), Smoother( X, Y) ),
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line( 100, "Solid", "Black", "", 1 )}
)
)
);

Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?C'est également une option, mais vous perdez l'un des avantages de Page : avoir une mise à l'échelle d'axe différente pour différentes « pages ». Cela ne pose peut-être pas de problème ici et pourrait même constituer un avantage.
Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?@jthi Merci.
Name Label Position("Last")ne semble pas être disponible/fonctionner dans JMP 16.2.
@hogi La raison pour laquelle j'ai choisi l'option Page est que je peux obtenir une mise à l'échelle différente de l'axe Y. Je suis sûr qu'il existe d'autres moyens de procéder, mais l'option Page semble la plus simple.
Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Vous devrez peut-être alors revenir à la solution de Mark et utiliser le gestionnaire de changement de filtre avec elle. Encore une fois, je n'ai aucune idée des limites de JMP16 avec cette option
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 984),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(
Points(X, Y(1), Legend(15)),
Smoother(X, Y(1), Legend(16))
),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 15}),
Display(:age, N Items(6))
)
)
);
add_reflines = EvalExpr(
axis = Expr(gb) << XPath("//AxisBox");
axis[2::N Items(axis)::2] << Add Ref Line(80, "Solid", "Red", "Reference", 1, 1, Label Settings({Opposite Axis(1)}));
);
f = Function({a}, add_reflines);
ldf = (Report(gb) << top parent)[OutlineBox("Local Data Filter")] << Get Scriptable Object;
rs = ldf << Make Filter Change Handler(f);
add_reflines;
Write();
Ce n’est pas l’option la plus robuste pour ce faire, mais c’est assez simple.
Re : Comment définir une ligne de référence sur chaque page avec l'option Page dans Graph Builder ?Et un script graphique pourrait être une option
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 984),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(
Points(X, Y(1), Legend(15)),
Smoother(X, Y(1), Legend(16))
)
);
(Report(gb) << XPath("//FrameBox")) << Add Graphics Script(
Pen Color("Red");
Text Color("red");
Text(Right Justified, {X Origin() + X Range(), 80}, "Reference");
H Line(80);
);
gb << Local Data Filter(
Add Filter(
columns(:age),
Display(:age, N Items(6))
)
);
Write();