Quand je construis un graphique à partir d'un dt comme celui-ci:
gb = Data_Table << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
)
);
Cela fonctionne très bien.Cependant, si je mets tout cela en boucle, dans l'espoir de générer un ensemble de graphiques (un pour chacune des étiquettes de colonne) chacun dans leur propre fenêtre, il met simplement à jour le premier graphique à la place:
for(i = 1, i <= N Items(analysisTests), i++,
gb = Data_Table << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
)
);
);Comment puis-je le faire afficher un ensemble de graphiques, chacun dans sa propre fenêtre?Il semble que parce qu'il demande un graphique basé sur une table de données, j'aurais besoin de plusieurs tables de données, chacune avec son propre graphique, mais il semble qu'il devrait y avoir un moyen plus simple.J'ai essayé gb [i] en espérant obtenir un graphique séparé pour chaque boucle, mais cela donne une erreur. - Valeur non indicative dans l'accès ou l'évaluation de 'Assign'
Je ne sais pas pourquoi - je m'attendrais à ce que l'action par défaut soit que des fenêtres séparées soient créées; comme dans ce script:
dt = open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << get column names;
for (i=1,i<=nitems(cols),i++,
dt << Graph Builder(
Size( 353, 317 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( eval(cols[i]) ) )
);
)
Si j'ai mal compris ce que vous entendez par "fenêtre" - et que ce que vous voulez vraiment, ce sont beaucoup de graphiques dans une seule fenêtre, vous devez placer le graphique dans un conteneur (qui empêche son rendu immédiatement), puis l'ajouter à un pré -Boîte d'affichage existante (hlb dans cet exemple)
dt = open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << get column names;
NewWindow("Demo",
hlb = HListBox()
);
for (i=1,i<=nitems(cols),i++,
content = VListBox(
dt << Graph Builder(
Size( 353, 317 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( eval(cols[i]) ) )
)
);
hlb << append(content)
);Merci David,
C'est en fait exactement ce que je faisais, mais il ne montrait que le dernier.J'ai fini par trouver un bogue dans une partie du script "extra" que je n'ai pas montré et une fois que cela a été corrigé, il a commencé à fonctionner correctement.Donc, votre réponse m'a montré que je faisais les choses correctement et m'a orienté dans la bonne direction pour trouver le vrai problème.Merci