Quand je construis un graphique à partir d'un dt comme ceci :
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 le tout en boucle, dans l'espoir de générer un ensemble de graphiques (un pour chacune des étiquettes de colonne), chacun dans sa propre fenêtre, cela 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 faire en sorte qu'il affiche un ensemble de graphiques, chacun dans sa propre fenêtre ?Il semble que, parce qu'il demande un graphique basé sur un tableau de données, j'aurais besoin de plusieurs tableaux de données, chacun avec son propre graphique, mais il semble qu'il devrait y avoir un moyen plus simple.J'ai essayé gb[i] dans l'espoir d'obtenir un graphique distinct pour chaque boucle, mais cela donne une erreur. -- Valeur non inscriptible lors de l'accès ou de l'évaluation de 'Assign'
Merci David,
C'est en fait exactement ce que je faisais, mais il ne s'agissait que de montrer le dernier.J'ai fini par trouver un bug dans une partie du script "extra" que je n'avais pas montré et une fois celui-ci corrigé, il a commencé à fonctionner correctement.Votre réponse m'a donc montré que je faisais les choses correctement et m'a orienté dans la bonne direction pour trouver le vrai problème.Merci
Si j'ai mal compris ce que vous entendiez par "fenêtre" - et que ce que vous voulez vraiment, ce sont beaucoup de graphiques dans une seule fenêtre, alors vous devez placer le graphique dans un conteneur (cela empêche son rendu immédiat), 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)
);Je ne sais pas pourquoi - je m'attendrais à ce que l'action par défaut soit la création de fenêtres distinctes ; 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]) ) )
);
)