JMP wird beim Erstellen vieler Diagramme mit JSL langsam gestopptIch arbeite an einem Skript, das mehrere Diagramme erstellt, für jedes Diagramm eine Regressionsanpassung ermittelt und anschließend alle Regressionskoeffizienten in einer Tabelle speichert. Das Skript führt die gewünschten Aktionen aus, gerät aber mit zunehmender Anzahl auszuwertender Spalten ins Stocken. Das Skript scheint die in der For-Schleife erstellten Diagramme und generierten Panels im Hintergrund beizubehalten, selbst wenn ich versuche, sie innerhalb der Schleife zu schließen (ich benötige die Daten der einzelnen Diagramme oder Tabellen nicht mehr, sobald das Diagramm an eine Zeitschrift gesendet (für den PDF-Export) und die Regressionskoeffizienten extrahiert wurden).
Wenn ich das Skript mit dem Debugger schrittweise durchgehe, läuft es bis zum Ende und zeigt die einzelnen Fenster nicht an. Stoppe ich den Debugger jedoch (rotes Quadrat), werden alle einzelnen Fenster aus der For-Schleife erstellt. Das Skript iteriert über 600 Spalten, und die entsprechende Anzahl der im Hintergrund erstellten (unsichtbar gesetzten) Fenster bringt jmp mit der Zeit zum Stillstand.
Wenn ich ein Skript verwende, um einen Datensatz zu durchlaufen, um Analysen durchzuführen oder viele Diagramme zu erstellen, wie kann ich die erstellten „Zwischenfenster“, Diagramme usw. am besten schließen, um den entstehenden Speicherbedarf zu minimieren? Ich
Unten sehen Sie einen Teilausschnitt aus dem Skript, in dem ich die Spalten durchlaufe.
For( i = 7, i <=ncols, i++,
biv = dt << Bivariate(
Y(Column(colList[i]) ),
X( :Temperature ),
Fit Line( {Line Color( "Medium Dark Red" )} ), invisible);
rbiv = biv << Report;
biv << Close;
rbiv[Frame Box( 1 )] << Frame Size( 550, 400 );
rbiv << Page Break;
rbiv << Journal;
dtx= Report( biv )["Parameter Estimates"][Table Box( 1 )] << make combined data table;
// dty= Report( biv )["Lack Of Fit"][Table Box( 1 )] << make combined data table;
dtSlope << Concatenate(dtx ,"Append to first table");
// dtFit << Concatenate(dty ,dtSlope, "Append to first table");
// Close(dty, NoSave);
Close(dtx, NoSave);
);
Automatisierung und SkriptingBetreff: JMP wird beim Erstellen vieler Diagramme mit JSL langsam und bleibt stehenIch denke, Sie müssen die markierte Zeile wie folgt ändern: „rbiv << Fenster schließen;“ und sie außerdem nach unten verschieben, wo Sie sie nicht mehr benötigen, z. B. dorthin, wo der Pfeil hinzeigt.

„rbiv << Fenster schließen;“ bedeutet, dass Sie das Berichtsfenster schließen möchten.

Es hat mich überrascht, dass "biv << Fenster schließen;" auch funktioniert. Ich würde es aber nicht empfehlen, zumindest weil das Verhalten nicht dokumentiert ist.
Betreff: JMP wird beim Erstellen vieler Diagramme mit JSL langsam und bleibt stehenAbgesehen davon, dass Sie sicherstellen müssen, dass diese Fenster ordnungsgemäß geschlossen werden, möchten Sie je nach Ihrer JMP-Version möglicherweise Unsichtbar oder sogar Privat zu Ihrer Bivariate-Nachricht hinzufügen und auch eine kombinierte Datentabelle erstellen
Names Default To Here(1);
cols = {"height", "weight"};
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_res = Empty();
For Each({colname}, cols,
// You can also use Private, it is generally faster but more dificult to debug and utilize
biv = dt << Bivariate(Y(Eval(colname)), X(:weight), Fit Line({Line Color({230, 159, 0})}), Invisible);
// this can also be made invisible/private
dt_biv = Report(biv)["Parameter Estimates"][Table Box(1)] << make combined data table(Invisible);
biv << close window;
dt_biv << Delete Scripts(dt_biv << Get Table Script Names);
// wait(0); // wait(0) isn't usually not necessary
If(Is Empty(dt_res),
dt_res = dt_biv;
dt_res << Set Name("Biv Parameter Estimates");
,
dt_res << Concatenate(
dt_biv,
"Append To First Table"
);
Close(dt_biv, no save);
);
);
dt_res << show window; // use result
Betreff: JMP wird beim Erstellen vieler Diagramme mit JSL langsam und bleibt stehenVielen Dank. Beide Lösungen/Empfehlungen haben geholfen, allerdings aus unterschiedlichen Gründen.
Ja, der Fehler scheint auf meine falsche Verwendung des Befehls „biv << Schließen“ und nicht „biv << Fenster schließen“ zurückzuführen zu sein. Der Befehl „Schließen“ erzeugte weder einen Fehler noch wurde irgendetwas angezeigt (daher mein Problem). Dies kann eines der frustrierendsten Probleme mit JSL sein. Befehle oder Argumente, die nicht korrekt oder angemessen sind, erzeugen oft keine Fehler und bewirken einfach nichts. Dies erschwert die Fehlerbehebung, wenn das Problem am Skript selbst oder an der falschen Verwendung eines Befehls liegt.
Nachdem ich zum richtigen „Schließen“-Befehl gewechselt hatte, wurde die falsche Stelle im Skript offensichtlich, da sie einen Fehler erzeugte, da ich ihn noch immer zum Abrufen der Parameterschätzungen benötigte.
Ich weiß die Hilfe wirklich zu schätzen …
Betreff: JMP wird beim Erstellen vieler Diagramme mit JSL langsam und kommt zum StillstandBenötigen Sie den vollständigen bivariaten Fit-Bericht? Oder suchen Sie nur nach Parameterschätzungen (Steigung und Achsenabschnitt sowie die zugehörigen Standardfehler und t-Verhältnisse)? Falls Letzteres zutrifft, haben Sie versucht, „Kurve anpassen“ anstelle von „Y durch X anpassen“ zu verwenden? Meiner Erfahrung nach ist „Kurve anpassen“ schneller und erleichtert die Verarbeitung einer großen Anzahl von Kurven.