Come eseguo script per inviare grafici e dati di analisi al journal senza eseguire manualmente script esistenti per grafici/analisi?CIAO,
Ho un sacco di script che uso per analizzare i dati di test del prodotto in JMP.
Gli script generalmente richiamano più colonne nel file di dati del test.
Ogni esecuzione del test è contrassegnata da un ID e solo questo ID cambia per l'estrazione dei nuovi dati dell'esecuzione del test in JMP: gli script utilizzati per l'analisi dei dati rimangono gli stessi.
Per condividere la mia analisi (attualmente) creo manualmente un pacchetto di diapositive PPT con i grafici e i dati di analisi (come mediana e std-dev ecc.).
Vorrei passare alla rivista JMP.
Mi chiedevo se fosse possibile avere uno script che (eseguendo automaticamente o senza gli altri miei script di analisi) invii i grafici e i dati di analisi a un giornale JMP. Se questo è possibile, potrei per favore ricevere aiuto con uno script di esempio per mettere insieme un diario del genere?
Grazie.
Automazione e scriptingfinestreRi: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?@ian_jmp - Ho analizzato il codice suggerito per rintracciare ciò che non funziona. Sembra che il problema sia nella riga del ciclo for
thisWindow = postWindowList[w];
che nel mio caso riporta nel registro (quando viene eseguito un semplice script per tracciare un grafico)
"part012 - Graph Builder"
per il primo elemento del grafico non presente
preWindowList
Poi basta correre
Window(thisWindow) << Journal
non mette la finestra chiamata
"part012 - Graph Builder"
in un file journal. C'è un problema con il nome "part012 - Graph Builder" stesso a causa del quale questo grafico non viene inviato a un diario?
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?@ian_jmp , Se provo nel modo seguente non ottengo un elenco di finestre di grafici aperte (nel registro) a meno che non commento il ciclo for (alla fine).
Inoltre, non viene generato alcun file journal. Dove sto commettendo l'errore?
Definisco una funzione (chiamata getOpenWindowNames.jsl) e la eseguo
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;
);Quindi chiama la funzione precedente in un altro script come
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);
);
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?@ian_jmp . Ora ho fatto altri test. Questa parte del tuo script non funziona.
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Tutto ciò che è al di sopra di questo nel tuo script dà i risultati attesi, ma solo se commento quanto sopra per il blocco del ciclo.
Inoltre, non ottengo i grafici nel diario, quindi solo il codice sopra l'aspetto for sembra funzionare come previsto a meno che non stia facendo qualcosa di sbagliato.
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?@ian_jmp . Sto cercando di utilizzare il tuo script nel modo seguente.
Ho scritto uno script che carica il file di dati e traccia vari grafici.
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 chartsLo script precedente funziona come previsto.
Quindi (sulla quarta riga sopra), ci ho provato includere il tuo script come di seguito (nota le righe commentate) per l'invio dei grafici al diario ma non funziona.
Dove sto sbagliando (forse la mia dichiarazione di inclusione o la chiamata di funzione, ad esempio output = nomiDiFinestreAperte() )?
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);
);
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?La selezione di rapporti specifici dall'output è abbastanza semplice, ma piuttosto specifica.Ti suggerisco di dedicare del tempo alla lettura della Guida allo scripting per iniziare.Quindi le tue domande specifiche su come ottenere i rapporti precisi riceveranno risposta dalla documentazione o sarai in grado di fornire una domanda più dettagliata a cui la comunità dovrà rispondere.
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?Grazie @ian_jmp .
Il tuo script sembra estremamente utile, soprattutto perché sono relativamente nuovo in JMP (proveniente da MATLAB).
Tuttavia, non capisco il tuo commento su "i f gli script non vengono salvati nella tabella ".
I miei script vengono salvati e non cambiano per l'analisi di nuovi dati di test (come menzionato nel mio PO).
Inoltre, ho bisogno solo di grafici specifici da ogni script e solo di alcuni dati di analisi calcolati (come ad esempio mediana e std-dev, non altri parametri calcolati anche da JMP) per andare al diario. Come raggiungere questo obiettivo in JSL?
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?Se non vuoi modificare i tuoi script esistenti, puoi provare questo tipo di approccio. Se gli script non vengono salvati nella tabella, guarda la funzione JSL 'Include()':
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);
);
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?Grazie. Sì, questo mi indica un approccio che potrei seguire.
Tuttavia, noto che lo script di caricamento del file di dati e gli script di tracciamento/analisi del grafico ecc. Devono essere scritti all'interno dello script per generare il diario.
Nel mio caso, ho già script separati che caricano i dati, tracciano i grafici necessari e generano l'analisi necessaria.
C'è un modo per fare riferimento a script esistenti dall'interno della sceneggiatura del diario senza scriverli di nuovo all'interno della sceneggiatura del diario?
Ri: Come faccio a creare uno script per inviare grafici e dati di analisi al diario senza eseguire manualmente script esistenti per grafici/analisi?Una ricerca sul Web per "creare uno script per un diario JMP" ti fornirà più esempi, ma questo potrebbe indirizzarti nella giusta direzione:
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>