Quando costruisco un grafico da un dt come questo:
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 ) )
)
);
Funziona benissimo.Tuttavia, se metto tutto in un ciclo, sperando di generare una serie di grafici (uno per ciascuna delle etichette di colonna) ciascuno nella propria finestra, aggiorna invece il primo grafico:
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 ) )
)
);
);Come faccio a visualizzare una serie di grafici, ciascuno nella propria finestra?Sembra che, poiché chiedendo un grafico basato su una tabella di dati, avrei bisogno di più tabelle di dati ciascuna con il proprio grafico, ma sembra che dovrebbe esserci un modo più semplice.Ho provato gb [i] sperando di ottenere un grafico separato per ogni ciclo, ma questo dà un errore. - Valore non sottoscrivibile nell'accesso o nella valutazione di "Assegna"
Non sono sicuro del motivo: mi aspetto che l'azione predefinita sia la creazione di finestre separate; come in questo 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]) ) )
);
)
Se ho frainteso cosa intendi per "finestra" e che ciò che vuoi veramente sono molti grafici in una singola finestra, allora devi mettere il grafico in un contenitore (che ne impedisce il rendering immediato) e poi aggiungerlo a un pre -box di visualizzazione esistente (hlb in questo esempio)
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)
);Grazie David,
Questo è esattamente quello che stavo facendo, ma mostrava solo l'ultimo.Alla fine ho trovato un bug in una parte dello script "extra" che non ho mostrato e una volta risolto ha iniziato a funzionare correttamente.Quindi la tua risposta mi ha mostrato che lo stavo facendo bene e mi ha indirizzato nella giusta direzione per trovare il vero problema.Grazie