Anhängen mehrerer Diagrammfelder an ein einzelnes Fenster, ohne dass diese das letzte Anhängen kopierenIch versuche, ein Fenster zu erstellen, an das mehrere Diagrammfelder angehängt werden, um die Visualisierung der von mir verarbeiteten Daten zu erleichtern.Das Setup, das ich habe, ist ähnlich.
thisWindow = new window("Test Window");
for(x = 1, x <=nitems(thingsToDraw), x++,
thisWindow << append(
graph box(
(setup of X and Y axis, scales and such)
(for loops that create dynamic shapes in the graph box)
);
);
);Das Problem besteht darin, dass jedes Mal, wenn ein neues Diagrammfeld angehängt wird, alle vorherigen Diagrammfelder so geändert werden, dass sie mit dem neuen übereinstimmen.Ich bin mir sicher, dass es eine Möglichkeit gibt, die Diagrammfelder zu isolieren, sodass sie sich nach dem Anhängen neuer Felder nicht mehr gegenseitig aktualisieren, aber ich komme damit nicht klar.Wenn ich die Boxen durch Größe und Einrichtung alle einzigartig mache, scheinen sie sich nicht gegenseitig zu kopieren.Aber das verfehlt den Zweck der Schleife und den Grund, warum ich überhaupt versuche, sie zu erstellen.Ich habe versucht, dies als Funktion einzurichten und aufzurufen sowie als Ausdruck einzurichten, der im laufenden Betrieb ausgewertet wird.Beide Ergebnisse sind gleich.
Ich verwende JMP 14.
Betreff: Anhängen mehrerer Diagrammfelder an ein einzelnes Fenster, ohne dass diese das letzte Anhängen kopierenHa!Das ist es, was ich brauchte.Ich habe versucht herauszufinden, wie ich es irgendwie kopieren kann, da ich dachte, das wäre einfacher, aber ich konnte nicht herausfinden, wie.Das Kopieren eines Bildes und das anschließende Hinzufügen zu einer Bilderbox funktioniert einwandfrei!Und ich kann nur das Diagrammfeld selbst ohne die Achsenbeschriftungen und dergleichen für das Bild abrufen, was das, was ich versuche, verbessert.
Danke!
Betreff: Anhängen mehrerer Diagrammfelder an ein einzelnes Fenster, ohne dass diese das letzte Anhängen kopierenDieses Beispiel veranschaulicht den von mir vorgeschlagenen Ansatz.
Names Default to Here( 1 );
nw = New Window( "Multiple Plots",
vlb = V List Box()
);
a = [ 1, 2, 3, 4 ];
b = [ 2, 4, 6, 8 ];
c = [ 4, 3, 2, 1 ];
d = [ 8, 6, 4, 2 ];
For( plot = 1, plot <= N Row( a ), plot++,
Eval(
Substitute(
Expr(
vlb << Append(
Graph Box(
X Scale( -6, 6),
Y Name( "Amplitude" ),
Y Scale( -10, 10 ),
Y Function( aa + bb * Sine( cc * x / dd ), x )
)
);
),
Expr( aa ), a[plot],
Expr( bb ), b[plot],
Expr( cc ), c[plot],
Expr( dd ), d[plot]
)
);
);Betreff: Anhängen mehrerer Diagrammfelder an ein einzelnes Fenster, ohne dass diese das letzte Anhängen kopierenHier ist eine einfache Lösung.Es kopiert nicht die Diagrammbox() in das Ausgabefenster, sondern kopiert ein Bild der Diagrammbox.
thisWindow = new window("Test Window");
for(x = 1, x <=nitems(thingsToDraw), x++,
thisWindow << append(
graph box(
(setup of X and Y axis, scales and such)
(for loops that create dynamic shapes in the graph box)
)<<GET picture=""></GET>Betreff: Anhängen mehrerer Diagrammfelder an ein einzelnes Fenster, ohne dass diese das letzte Anhängen kopierenIch wette, dass alle Ihre Grafikskripte dieselben Variablen verwenden und dass Sie den Wert in diesen Variablen bei jeder Iteration ändern. Wenn dies der Fall ist, werden alle Diagramme mit den neuen Werten neu gezeichnet. Sie müssen die Variable für jedes Grafikskript in einen Literalwert konvertieren.