bonjour,
j'ai superposé 3 variables sur l'axe Y.
est-il possible d'ajouter un trait vertical pour relier le mini au maxi pour chaque identifiant de l'axe X ? Il faudrait qu'on puisse choisir la couleur, l'épaisseur et la transparence du trait vertical.
voir l'image avec un exemple dans le cercle.
cordialement
Vous pouvez essayer d'utiliser la barre d'erreur de plage

Ou vous pouvez ajouter un graphique à barres d'intervalle et désactiver la valeur « milieu » (cela peut nécessiter des calculs/colonnes supplémentaires)

Et puis il y a bien sûr l'option de script utilisant un script graphique qui est plus compliqué

Voici un exemple possible d'option scriptée
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Formula Column(Operation(Category("Aggregate"), "Minimum"), Columns(:height), Group By(:age));
dt << New Formula Column(Operation(Category("Aggregate"), "Maximum"), Columns(:height), Group By(:age));
gb = dt << Graph Builder(
Size(525, 448),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Y(:"Maximum[height][age]"n, Position(1)),
Y(:"Minimum[height][age]"n, Position(1))
),
Elements(Points(X, Y(1), Y(2), Y(3), Legend(3), Summary Statistic("Mean")))
);
segs = Report(gb)[FrameBox(1)] << Find Segs();
ys = [];
xs = {};
For Each({seg}, segs,
If(seg << Class Name == "MarkerSeg",
ys = ys |/ (seg << get y values)`;
Insert Into(xs, seg << get x values);
)
);
For Each({{ymin, ymax, x}}, Across(V Min(ys), V Max(ys), xs[1]),
Eval(EvalExpr(
Report(gb)[FrameBox(1)] << Add Graphics Script(
"Back",
Pen Color("Purple");
Pen Size(20);
Transparency(0.2);
V Line(Expr(x), Expr(ymin), Expr(ymax));
);
));
);
Write();
Cet exemple « simple » ne fonctionnera pas avec des filtres.
Et puis il y a Marker Draw Expr où vous pouvez contrôler la couleur et la transparence de la légende et la largeur de l'expression de dessin
Voir plus...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Formula Column(Operation(Category("Aggregate"), "Minimum"), Columns(:height), Group By(:age));
dt << New Formula Column(Operation(Category("Aggregate"), "Maximum"), Columns(:height), Group By(:age));
gb = dt << Graph Builder(
Size(746, 818),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Y(:"Maximum[height][age]"n, Position(1)),
Y(:"Minimum[height][age]"n, Position(1))
),
Elements(
Points(X, Y(1), Y(2), Y(3), Legend(3), Summary Statistic("Mean")),
Points(X, Y(1), Legend(4), Summary Statistic("Mean"))
),
Local Data Filter(Add Filter(columns(:age), Display(:age, N Items(6)))),
SendToReport(
Dispatch({}, "400", ScaleBox,
{Legend Model(
4,
Properties(
0,
{Line Color(35), Transparency(0.2)},
Item ID("Mean(height)", 1)
)
)}
)
)
);
frame = Report(gb)[FrameBox(1)];
seg = (frame << FindSeg(Marker Seg(4)));
seg << Set Marker Draw Expr(
Function({this seg, this row, x, y, size, row state},
size = 0.1;
Rect(
x - size,
:"Maximum[height][age]"n[this row],
x + size,
:"Minimum[height][age]"n[this row],
1
);
);
);
