Modifier les largeurs de ligne du générateur de graphiques avec une variable de superpositionJe souhaite pouvoir modifier la largeur des lignes dans Graph Builder lorsque j'ai spécifié une variable de superposition, mais je ne sais pas à l'avance quelles pourraient être les valeurs de cette variable (ni combien de valeurs il peut y avoir). J'ai essayé ce qui suit en me basant sur un message de la communauté :
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) )
);
fbs = gb << XPath("//FrameBox");
For(i = 1, i <= N Items(fbs), i++,
frame = fbs[i];
seg = (frame << Find Seg("Line Seg"));
seg << Set Line Width(1);
);Mais cela ne change que l'épaisseur d'une des lignes (dans ce cas, pour :sex=="F").
Merci!
Exploration et visualisation des donnéesRe: Modifier les largeurs de ligne du générateur de graphiques avec une variable de superpositionFind Segs
une fonction tellement utile ! y a-t-il de la documentation ?
Re: Modifier les largeurs de ligne du générateur de graphiques avec une variable de superpositionSalut Matthieu,
La solution la plus simple consiste à simplement changer Find Seg en Find Segs . Cela recherchera tous les segments de ligne (il y en a deux, un pour chaque sexe) et remplacera la largeur par celle dont vous avez besoin.
De plus, comme il n'y a qu'une seule boîte de cadre (ou 1 seul graphique), nous n'avons pas besoin de la boucle For ici. J'ai trouvé le message de la communauté auquel vous faisiez référence, et dans cet exemple, il y a deux boîtes de cadre.
Nous pouvons donc simplifier votre code comme suit :
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) )
);
fbs = gb << XPath("//FrameBox");
seg = (fbs << Find Segs("Line Seg"));
seg << Set Line Width(1);
J'espère que cela aide !