Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?Salut,
J'ai un tas de scripts que j'utilise pour analyser les données de test du produit dans JMP.
Les scripts appellent généralement plusieurs colonnes dans le fichier de données de test.
Chaque exécution de test est marquée par un ID et seul cet ID change pour extraire les nouvelles données d'exécution de test dans JMP - les scripts utilisés pour l'analyse des données restent les mêmes.
Pour partager mon analyse, je crée (actuellement) manuellement un pack de diapositives PPT avec les graphiques et les données d'analyse (telles que la médiane et le std-dev, etc.).
J'aimerais passer au journal JMP.
Je me demandais s'il était possible d'avoir un script qui (soit en exécutant mes autres scripts d'analyse automatiquement ou sans) enverrait les graphiques et les données d'analyse à un journal JMP ? Si cela est possible, pourrais-je obtenir de l'aide avec un exemple de script pour créer un tel journal ?
Merci.
GraphiqueScriptles fenêtresRe : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?Une recherche sur le Web pour « scripting a JMP journal » vous donnera plus d'exemples, mais cela pourrait vous orienter dans la bonne direction :
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>Re : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?Merci. Oui, cela m'indique une approche que je pourrais suivre.
Cependant, je note que le script de chargement du fichier de données et les scripts de traçage/analyse de graphiques, etc. doivent être écrits dans le script pour générer le journal.
Dans mon cas, j'ai déjà des scripts séparés qui chargent les données, tracent les graphiques nécessaires et génèrent l'analyse nécessaire.
J'ai un moyen de référencer des scripts existants depuis le script du journal sans les réécrire dans le script du journal ?
Re : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?Si vous ne souhaitez pas modifier vos scripts existants, vous pouvez essayer ce genre d'approche. Si les scripts ne sont pas enregistrés dans la table, regardez la fonction 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);
);
Re : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?Merci @ian_jmp .
Votre script semble extrêmement utile, d'autant plus que je suis relativement nouveau sur JMP (venant de MATLAB)..
Cependant, je ne comprends pas votre commentaire sur "je f les scripts ne sont pas enregistrés dans la table ".
Mes scripts sont enregistrés et ne changent pas pour l'analyse de nouvelles données de test (comme mentionné dans mon OP).
De plus, je n'ai besoin que de graphiques spécifiques de chaque script et de quelques données d'analyse calculées (telles que la médiane et le std-dev par exemple, pas d'autres paramètres que JMP calcule également) pour accéder au journal. Comment y parvenir en JSL ?
Re : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?La sélection de rapports spécifiques à partir de votre sortie est assez simple, mais assez spécifique.Je vous suggère de prendre le temps de lire le Guide de script pour commencer.Ensuite, vos questions spécifiques sur la façon d'obtenir les rapports précis seront soit répondues par la documentation, soit vous pourrez fournir une question plus détaillée à la communauté.
Re : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?@ian_jmp . J'essaie d'utiliser votre script de la manière suivante.
J'ai écrit un script qui charge le fichier de données et trace divers graphiques.
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 chartsLe script ci-dessus fonctionne comme prévu.
Puis (sur la quatrième ligne ci-dessus), j'ai essayé de comprendre votre script comme ci-dessous (notez les lignes commentées) pour envoyer les graphiques au journal mais ne fonctionne pas.
Où vais-je mal (peut-être mon instruction include ou l'appel de fonction, par exemple output = nameOfOpenWindows() ) ?
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);
);
Re : Comment puis-je créer un script pour envoyer des graphiques et des données d'analyse au journal sans exécuter manuellement les scripts existants pour les graphiques/l'analyse ?@ian_jmp . J'ai maintenant fait d'autres tests. Cette partie de votre script ne fonctionne pas.
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Tout ce qui précède dans votre script donne les résultats attendus, mais seulement si je commente le bloc de boucle for ci-dessus.
De plus, je ne mets pas les graphiques dans le journal, donc seul le code au-dessus de for semble fonctionner comme prévu, sauf si je fais quelque chose de mal.