Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?Hallo,
Ich habe eine Reihe von Skripten, mit denen ich die Produkttestdaten in JMP analysiere.
Die Skripte rufen im Allgemeinen mehrere Spalten in der Testdatendatei auf.
Jeder Testlauf ist mit einer ID gekennzeichnet und nur diese ID ändert sich, um die neuen Testlaufdaten in JMP abzurufen – die für die Datenanalyse verwendeten Skripte bleiben dieselben.
Um meine Analyse zu teilen, erstelle ich (derzeit) manuell ein PPT-Folienpaket mit den Diagrammen und Analysedaten (wie Median und Standardabweichung usw.).
Ich möchte zum JMP-Journal wechseln.
Ich habe mich gefragt, ob es möglich ist, ein Skript zu haben, das (entweder durch automatisches Ausführen meiner anderen Analyseskripts oder ohne) die Diagramme und Analysedaten an ein JMP-Journal sendet? Wenn dies möglich ist, könnte ich bitte Hilfe mit einem Beispielskript für die Zusammenstellung eines solchen Tagebuchs erhalten?
Danke.
Automatisierung und SkripterstellungWindowsBetreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?@ian_jmp – Ich habe Ihren vorgeschlagenen Code aufgeschlüsselt, um herauszufinden, was nicht funktioniert. Es scheint, dass das Problem in der Zeile in der for-Schleife liegt
thisWindow = postWindowList[w];
was in meinem Fall im Protokoll gemeldet wird (wenn ein einfaches Skript ausgeführt wird, um ein Diagramm zu zeichnen)
"part012 - Graph Builder"
für das erste Diagrammelement, das nicht vorhanden ist
preWindowList
Dann einfach laufen
Window(thisWindow) << Journal
setzt das aufgerufene Fenster nicht
"part012 - Graph Builder"
in eine Journaldatei. Gibt es ein Problem mit dem Namen? „part012 – Graph Builder“ selbst, weshalb dieses Diagramm nicht an ein Journal gesendet wird?
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?@ian_jmp , Wenn ich den folgenden Weg versuche, erhalte ich keine Liste der geöffneten Diagrammfenster (im Protokoll), es sei denn, ich kommentiere die for-Schleife (am Ende).
Außerdem wird keine Journaldatei generiert. Wo mache ich den Fehler?
Ich definiere eine Funktion (genannt getOpenWindowNames.jsl) und führe sie aus
Names Default To Here(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);Rufen Sie dann die obige Funktion in einem anderen Skript auf als
Names Default To Here(1);
//Clear Symbols();
include ("getOpenWindowNames.jsl");
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
dts = dt << GetTableScriptNames;
// Run every script
for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
//// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?@ian_jmp . Ich habe jetzt noch einige weitere Tests durchgeführt. Dieser Teil Ihres Skripts funktioniert nicht.
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Alles darüber in Ihrem Skript führt zu den erwarteten Ergebnissen, aber nur, wenn ich den obigen for-Schleifenblock kommentiere.
Außerdem bekomme ich die Diagramme nicht in das Journal, sodass nur der Code über den for-Looks wie erwartet zu funktionieren scheint, es sei denn, ich mache etwas falsch.
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?@ian_jmp . Ich versuche, Ihr Skript folgendermaßen zu verwenden.
Ich habe ein Skript geschrieben, das die Datendatei lädt und verschiedene Diagramme darstellt.
partID = "part012"; // specifies part ID
DataTable = getDataTable4WfrID2(partID,partID); // loads test data table corresponding to the partID and names it the same as partID
include ("allGraphPlotter.jsl"); //plots all necessary chartsDas obige Skript funktioniert wie erwartet.
Dann (in der vierten Zeile oben) habe ich es versucht enthalten Ihr Skript wie unten (beachten Sie die kommentierten Zeilen) zum Senden der Diagramme an das Journal funktioniert aber nicht.
Wo mache ich einen Fehler (vielleicht meine Include-Anweisung oder der Funktionsaufruf, z. B. „output =“)? NamenOfOpenWindows() )?
NamesDefaultToHere(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
//dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
//dts = dt << GetTableScriptNames;
// Run every script
//for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?Die Auswahl spezifischer Berichte aus Ihrer Ausgabe ist recht einfach, aber sehr spezifisch.Ich schlage vor, dass Sie sich die Zeit nehmen, den Scripting Guide zu lesen, um loszulegen.Dann werden Ihre spezifischen Fragen dazu, wie Sie die genauen Berichte erhalten, entweder in der Dokumentation beantwortet, oder Sie können der Community eine detailliertere Frage zur Beantwortung stellen.
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?Danke @ian_jmp .
Ihr Skript sieht äußerst nützlich aus, insbesondere da ich relativ neu bei JMP bin (ich komme von MATLAB).
Allerdings verstehe ich Ihren Kommentar zu „i f Die Skripte werden nicht in der Tabelle gespeichert ".
Meine Skripte werden gespeichert und ändern sich nicht für die Analyse neuer Testdaten (wie in meinem OP erwähnt).
Außerdem benötige ich nur bestimmte Diagramme aus jedem Skript und nur einige berechnete Analysedaten (z. B. Median und Standardabweichung, keine anderen Parameter, die JMP ebenfalls berechnet), um in das Journal zu gelangen. Wie erreicht man dies in JSL?
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?Wenn Sie Ihre vorhandenen Skripte nicht ändern möchten, können Sie diesen Ansatz ausprobieren. Wenn die Skripte nicht in der Tabelle gespeichert sind, schauen Sie sich die JSL-Funktion „Include()“ an:
NamesDefaultToHere(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
dts = dt << GetTableScriptNames;
// Run every script
for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?Danke. Ja, das weist mich auf einen Ansatz hin, dem ich folgen könnte.
Ich stelle jedoch fest, dass das Skript zum Laden der Datendatei und die Skripte zum Zeichnen/Analysen von Diagrammen usw. in das Skript zur Erstellung des Journals geschrieben werden müssen.
In meinem Fall verfüge ich bereits über separate Skripte, die die Daten laden, die erforderlichen Diagramme zeichnen und die erforderliche Analyse erstellen.
Ich habe einen Weg dazu auf vorhandene Skripte verweisen aus dem Journal-Skript heraus, ohne sie erneut in das Journal-Skript zu schreiben?
Betreff: Wie erstelle ich ein Skript zum Senden von Diagrammen und Analysedaten an das Journal, ohne vorhandene Skripts für Diagramme/Analysen manuell auszuführen?Eine Websuche nach „Skripterstellung für ein JMP-Journal“ wird Ihnen weitere Beispiele liefern, aber das könnte Sie in die richtige Richtung weisen:
Names default to here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
// New Journal with a couple headings
nw = New Window("My Journal", <<JOURNAL></JOURNAL>