Fonction de boucle d'élément de création de graphiqueComment puis-je utiliser la fonction de boucle pour la définition de plusieurs positions ?
Si séparé comme ci-dessous, cela fonctionne :
Eval(
Substitute(
Expr(
gb = cdt << Graph Builder(
Size( 600, 800 ),
Show Control Panel( 0 ),
vvv,
Elements(Position( 1, 1 ),
Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 3 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 4 ) )
),
Elements(
Position( 2, 1 ),
Box Plot( X, Y, Outliers( 0 ) ),
Points( X, Y ),
Bar( X, Y, Bar Style( "Float" ), Label( "Label by Value" ) ),
Legend( 6 )
),
Elements(
Position( 2, 2 ),
Box Plot( X, Y, Outliers( 0 ) ),
Points( X, Y ),
Bar( X, Y, Bar Style( "Float" ), Label( "Label by Value" ) ),
Legend( 7 )
),
Elements(
Position( 2, 3 ),
Box Plot( X, Y, Outliers( 0 ) ),
Points( X, Y ),
Bar( X, Y, Bar Style( "Float" ), Label( "Label by Value" ) ),
Legend( 8 )
)
)
),
Expr( vvv ),
Name Expr( var expr )
)
);Mais si vous utilisez une boucle comme celle-ci, elle n'a qu'une barre, que manque-t-il dans ce code ?
Eval(
Substitute(
Expr(
gb = cdt << Graph Builder(
Size( 600, 800 ),
Show Control Panel( 0 ),
vvv,
Elements(Position( 1, 1 ),
Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 3 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 4 ) )
),
For( j = 1, j <= n_mydatecol, j++,
Elements(
Position( 2, j ),
Box Plot( X, Y, Outliers( 0 ) ),
Points( X, Y ),
Bar( X, Y, Bar Style( "Float" ), Label( "Label by Value" ) ),
Legend(eval( 5 + j ))
),
),
)
),
Expr( vvv ),
Name Expr( var expr )
)
);
Automatisation et scriptsWindowsRe : Fonction de boucle d'élément du générateur de graphiquesVous pouvez créer les expressions des éléments séparément, puis les évaluer dans l'expression du générateur de graphes. Dans certains cas, il peut être plus simple d'utiliser « Ajouter un élément ».
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(Variables(X(:height), Y(:weight)), Elements(Points(X, Y), Smoother(X, Y)));
Wait(0.5);
gb << Add Element(1, 1, {Type("Line Of Fit"), X, Y, Degree("Quadratic")});Re : Fonction de boucle d'élément du générateur de graphiquesmon thème veut être comme ça, dois-je définir la position ?

Re : Fonction de boucle d'élément du générateur de graphiquesL'ajout d'un élément permet de définir les positions X et Y. Avez-vous essayé si cela fonctionne dans votre cas ?
Re : Fonction de boucle d'élément du générateur de graphiquesBonjour Jarmo,
Essayez d'utiliser le code ci-dessous, mais affichez toujours uniquement le graphique en boîte, comment puis-je afficher la barre et l'étiquette.

Eval(
Substitute(
Expr(
gb = cdt << Graph Builder(
Size( 1200, 800 ),
Show Control Panel( 0 ),
vvv,
Elements(
Position( 1, 1 ),
Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 3 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 4 ) )
)
);
// Loop to add repetitive elements
For( i = 2, i <= 10, i++,
gb << Add Elements(
Position( 2, i ),
Box Plot( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 2 * i + 1 ) ),
Bar( X, Y, Legend( 2 * i + 2 ), Bar Style( "Float" ), Label( "Label by Value" ), Label Format( "Fixed Dec", 5, 2 ) )
);
);
),
Expr( vvv ),
Name Expr( var expr )
)
);
Re : Fonction de boucle d'élément du générateur de graphiquesJe vais devoir créer des exemples de données (ou en trouver des appropriés) et recréer le graphique, cela prendra donc un certain temps.
Re : Fonction de boucle d'élément du générateur de graphiquesJe vois que toutes les images ont changé radicalement… Je ne suis pas certain que les scripts fournis correspondent bien à ces nouvelles images. Quelles colonnes devraient être ajoutées dynamiquement et où ?
Script de création de graphiques pour cela

ça ressemble à quelque chose comme ça
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:height), X(:sex), Y(:weight)),
Elements(
Position(1, 1),
Points(X, Y, Legend(5)),
Smoother(X, Y, Legend(6)),
Line Of Fit(X, Y, Legend(8))
),
Elements(
Position(2, 1),
Points(X, Y, Legend(18)),
Bar(X, Y, Legend(19), Bar Style("Float"), Label("Label by Value"))
)
);
Si vous avez un tracé comme celui-ci et que vous souhaitez y ajouter un graphique à barres flottantes sur le côté droit avec des points

Vous pouvez utiliser l'élément d'ajout
gb << Add Element(2, 1, {Type("Bar"), X, Y, Bar Style("Float"), Label("Label by Value")});
Voir plus...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:height), X(:sex), Y(:weight)),
Elements(
Position(1, 1),
Points(X, Y, Legend(5)),
Smoother(X, Y, Legend(6)),
Line Of Fit(X, Y, Legend(8))
),
Elements(
Position(2, 1),
Points(X, Y, Legend(18))
)
);
gb << Add Element(2, 1, {Type("Bar"), X, Y, Bar Style("Float"), Label("Label by Value")});
Re : Fonction de boucle d'élément du générateur de graphiquesSalut Jarmo,
Merci pour votre aide ! Cela fonctionne si l'axe des Y n'en a qu'un. Cependant, s'il y en a plusieurs, puis-je utiliser la fonction de boucle pour afficher l'élément avec un diagramme en boîte et des barres ? J'ai essayé comme la première fois, mais cela n'affichait qu'un diagramme en boîte sans barres.
Re : Fonction de boucle d'élément du générateur de graphiquesJe ne suis pas sûr de ce que vous tracez, mais cela pourrait fonctionner (ou pas). Ici, j'utilise « Ajouter un élément » pour ajouter un graphique à barres sur l'axe X 2 et les axes Y 1 et 2.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:height), X(:sex), Y(:name), Y(:weight)),
Elements(Position(1, 1), Points(X, Y, Legend(20))),
Elements(
Position(1, 2),
Points(X, Y, Legend(5)),
Smoother(X, Y, Legend(6)),
Line Of Fit(X, Y, Legend(8))
),
Elements(Position(2, 1), Points(X, Y, Legend(19))),
Elements(Position(2, 2), Points(X, Y, Legend(18)))
);
gb << Add Element(2, 1, {Type("Bar"), X, Y, Bar Style("Float"), Label("Label by Value")});
gb << Add Element(2, 2, {Type("Bar"), X, Y, Bar Style("Float"), Label("Label by Value")});

Re : Fonction de boucle d'élément du générateur de graphiquesÇa marche, et j'essaye comme ça.
Merci beaucoup
Eval(
Substitute(
Expr(
gb = cdt << Graph Builder(
Size( 600, 800 ),
Show Control Panel( 0 ),
vvv,
Elements(Position( 1, 1 ),
Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 3 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 4 ) )
),
);
For( i = 1 , i <= n_mymetric , i++,
gb << Add Element(2, i, {Type("Bar"), X, Y, Bar Style("Float"), Label("Label by Value")});
),
),
Expr( vvv ),
Name Expr( var expr )
)
);