Générateur de graphiques : modifiez la largeur de la ligne du tracé parallèle lorsqu'il existe une variable de couleur.Bonjour tout le monde,
Je fais un tracé parallèle et j'utilise une variable pour colorer les lignes. Par exemple, j'utilise le script suivant avec la table Big Class :
obj = Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
Ensuite, je voudrais modifier la largeur de la ligne. J'ai essayé de lancer ceci :
frame = Report( obj )[FrameBox(1 )];
seg = frame << Find Seg( "Polyline Seg" );
seg << Set Line Width(3);
mais cela n'a modifié que les lignes associées au premier niveau de ma variable Color (age dans cet exemple).
Comment puis-je modifier toutes les lignes simultanément ? Dois-je utiliser la fonction Dispatch lorsque je crée le graphique ? Cependant je ne sais pas trop comment m'y prendre, puisque je ne connais pas à l'avance le nombre de niveaux de la variable Color.
Merci d'avance pour votre aide!
Personnalisation de masseRe: Graph Builder: changer la ligne de largeur du tracé parallèle lorsqu'il y a une variable de couleurJe ne sais pas pourquoi votre code ne fonctionne pas comme prévu. Cela fonctionne pour moi (JMP 15 pour Mac).
Une autre approche consiste à utiliser Xpath.
(obj << xpath( "//PolylineSeg" )) << Set Line Width( 3 );
Re: Graph Builder: changer la ligne de largeur du tracé parallèle lorsqu'il y a une variable de couleurSalut Ann,
Sur la base de quelques expériences que j'ai effectuées, je voudrais d'abord m'assurer que votre problème concerne la légende et non la ligne d'intrigue GB elle-même. Si c'est le cas, j'ai remarqué que lorsque vous modifiez manuellement la largeur de ligne dans le menu Personnaliser, les légendes ne sont pas non plus mises à jour correctement. Par conséquent, cela semble être un bogue.
Cependant, lorsque vous modifiez manuellement la largeur de ligne une par une dans la légende, les courbes et la légende sont mises à jour.
Le code correspondant (pour un élément de légende extrait du script GB) est le suivant:
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (2, {Line Width (3)}, Itemd ID ("14", 1) ) )}));
Donc, pour parcourir les éléments de la légende (c'est-à-dire les âges), j'ai trouvé le code "laid" suivant:
Names Default to Here (1);
dt = current data table ();
dts = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
invisible
);
dlist = Column (dts, "age") << get values;
Close (dts, NoSave);
show (dlist);
obj = dt << Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
objr = obj << report;
//frame = objr [FrameBox(1 )]; NO LONGER NEEDED
//seg = frame << Find Seg( "Polyline Seg" ); NO LONGER NEEDED
//seg << Set Line Width(6); NO LONGER NEEDED
For (i = 0, i < N Items (dlist), i++,
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (i, {Line Width (12)}, Itemd ID (dlist [i], 1) ) )}))
);
Re : Générateur de graphiques : modifier la largeur de la ligne du tracé parallèle lorsqu'il existe une variable de couleurMerci @ms et @Thierry_S pour vos réponses !
Mon objectif est en effet de changer la largeur des traits du graphique et pas seulement de la légende.
Je choisis la solution de @ms car elle est un peu plus courte mais les deux fonctionnent à merveille !:)