Boucle de tracé de variabilité pour toutes les colonnes sélectionnées avec un paramètre spécifié par l'utilisateurBonjour les gars,
Je suis relativement nouveau dans le domaine des scripts JMP. J'ai besoin d'un peu d'aide. Je suis en train de concevoir une application qui fait ce qui suit
Étape 1 : lorsque l'utilisateur clique sur un bouton, la fenêtre du graphique de variabilité s'ouvre et nous spécifions toutes les colonnes à tracer, le regroupement de l'axe des x et tous les paramètres de la table de données active actuelle
obj = dt << Graphique de variabilité();
Étape 2 : je souhaite obtenir les éléments spécifiés par l'utilisateur dans des variables distinctes comme
col_list = liste de toutes les colonnes sélectionnées dans obj
x_grouping = toutes les variables x spécifiées
.. pour tous les arguments de Variability Chart()
Étape 3 : après avoir extrait toutes les informations, je vais maintenant exécuter une boucle pour chaque variable de colonne, mais
pour i==1 (première colonne), je tracerai le graphique dans le rapport... l'utilisateur effectuera quelques modifications (par exemple, ajouter une légende, spécifier la couleur d'arrière-plan, etc.)
maintenant, je vais appliquer ce modèle (tous les paramètres de ce tracé) à toutes les colonnes et créer un rapport dans une nouvelle fenêtre pour chaque colonne.
Je suis confronté au problème suivant : étape 2 et étape 3 comment extraire les arguments de Variability Chart() et exécuter l'action
PS : je prévois également d'implémenter ceci en parallèle pour d'autres types de graphiques \
S'il vous plaît guidez
Automatisation et scriptsRé : Boucle de tracé de variabilité pour toutes les colonnes sélectionnées avec un paramètre spécifié par l'utilisateurVoici un exemple d'une façon de gérer ce que je pense que vous voulez faire. Le script est très incomplet et nécessite l'ajout de nombreuses exceptions, mais il devrait vous donner un point de départ.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
nw = New Window( "Col List Box Example",
modal,
H List Box(
Col List Box( all, width( 250 ) ),
V List Box(
Lineup Box( N Col( 2 ),
ybb = Button Box( "Y Col" ),
Y = Col List Box( Show( "run" ) ),
xbb = Button Box( "X Col" ),
x = Col List Box(),
Button Box( "Cancel",
nw << close window;
Throw();
),
Button Box( "OK",
ycols = y << get items;
xcols = x << get items;
)
)
)
)
);
// ycols and xcols now have been populated and you can then bring up one graph and
// let the user make the changes
nw = New Window( "Graphical Settings",
modal,
vc = dt << Variability Chart( Y( ycols[1] ), Model( "Main Effect" ), X( xcols[1] ) );
vc << on close(
// In the closing of the Variability Chart capture the script
theScript = Char( vc << get script );
);
);
// Run all of the graphs
For Each( {theCol, index},ycols, Eval( Parse( Substitute( theScript, ycols[1], theCol ) ) ) );Ré : Boucle de tracé de variabilité pour toutes les colonnes sélectionnées avec un paramètre spécifié par l'utilisateur@txnelson Merci beaucoup pour votre perspicacité. En fait, mon objectif principal est d'avoir une fenêtre de rapport distincte pour chaque colonne. Par exemple, si je sélectionne 5 colonnes pour Y et que dans le rapport, nous obtenons un tracé pour les 5 paramètres. Si j'ajoute une légende, que je change la couleur, etc. dans le premier graphique de la zone de contour, je souhaite écrire un script pour séparer chaque tracé dans une fenêtre distincte tout en utilisant les modifications que j'ai apportées au premier tracé. Existe-t-il un moyen d'y parvenir ? Veuillez suggérer
Ré : Boucle de tracé de variabilité pour toutes les colonnes sélectionnées avec un paramètre spécifié par l'utilisateurÉtape 1
obj = dt << Variability Chart();
ouvrira la boîte de dialogue Graphique de variabilité et lorsque l'utilisateur cliquera sur OK, tous les graphiques seront exécutés à ce moment-là.
Cependant, une fois le graphique de variabilité exécuté, vous pouvez interroger le script renvoyé par la plate-forme de graphique de variabilité et obtenir les X et les Y.
obj = Variability Chart( Y( :NPN1, :PNP1 ), Model( "Main Effect" ), X( :SITE ) );
theScript = char(obj << get script);
theYsList = words(word(1,substr(theScript,contains(theScript,"Y(")+2),")"),",");
theXsList = words(word(1,substr(theScript,contains(theScript,"X(")+2),")"),",");
Pour l'étape 2, vous pouvez interroger directement le tracé affiché et obtenir les différents paramètres. Consultez l'index des scripts pour savoir comment obtenir la taille de trame, le minimum et le maximum et l'incrément pour les différents axes, etc., que vous devrez appliquer aux applications supplémentaires du graphique de variabilité.
Je pense que l'approche que vous proposez va être plus compliquée que bénéfique. Je vous suggère de créer votre propre boîte de dialogue, ressemblant à la boîte de dialogue du graphique de variabilité, plutôt que d'utiliser la boîte de dialogue du graphique de variabilité, ce qui vous permettra d'obtenir toutes les informations dont vous avez besoin au préalable, et les étapes 2 et 3 seront alors beaucoup plus faciles à mettre en œuvre.
Consultez le Guide de script pour obtenir des informations sur la création de votre propre nouvelle fenêtre.boîte de dialogue
Ré : Boucle de tracé de variabilité pour toutes les colonnes sélectionnées avec un paramètre spécifié par l'utilisateurL'option la plus simple serait de créer vous-même l'interface utilisateur du lanceur de graphiques de variabilité. Si vous ne souhaitez pas le faire, vous pouvez utiliser << Get Script pour obtenir le script qui a été lancé et analyser les colonnes à partir de celui-ci
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution();
dist = Current Report()[OutlineBox(1)] << Get Scriptable Object;
dist << get script;