Wenn ich ein Diagramm aus einem dt wie diesem erstelle:
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 ) )
)
);
Es funktioniert großartig.Wenn ich jedoch alles in eine Schleife setze und hoffe, eine Reihe von Diagrammen (eines für jede der Spaltenbeschriftungen) in einem eigenen Fenster zu generieren, wird stattdessen nur das erste Diagramm aktualisiert:
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 ) )
)
);
);Wie kann ich eine Reihe von Diagrammen anzeigen, die jeweils in einem eigenen Fenster angezeigt werden?Es scheint, als würde ich nach einem Diagramm fragen, das auf einer Datentabelle basiert. Ich würde mehrere Datentabellen mit jeweils einem eigenen Diagramm benötigen, aber es scheint, dass es einen einfacheren Weg geben sollte.Ich habe versucht, gb [i] in der Hoffnung, für jede Schleife ein separates Diagramm zu erhalten, aber das gibt einen Fehler. - Nicht abonnierbarer Wert beim Zugriff oder bei der Auswertung von 'Zuweisen'
Ich bin mir nicht sicher, warum das so ist. Ich würde erwarten, dass die Standardaktion darin besteht, dass separate Fenster erstellt werden. wie in diesem Skript:
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]) ) )
);
)
Wenn ich falsch verstanden habe, was Sie mit "Fenster" gemeint haben - und dass Sie wirklich viele Diagramme in einem einzelnen Fenster haben möchten, müssen Sie das Diagramm in einen Container legen (der verhindert, dass es sofort gerendert wird) und es dann an ein Pre anhängen -existierende Anzeigebox (hlb in diesem Beispiel)
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)
);Danke David,
Dies ist eigentlich genau das, was ich getan habe, aber es zeigte nur den letzten.Am Ende fand ich einen Fehler in einem Teil des "zusätzlichen" Skripts, das ich nicht angezeigt hatte, und sobald dies behoben war, funktionierte es ordnungsgemäß.Ihre Antwort hat mir also gezeigt, dass ich es richtig gemacht habe und mich in die richtige Richtung gelenkt, um das eigentliche Problem zu finden.Vielen Dank