Obtenir des données d'analyse de ligne à partir de tracés de contour dans jmpSalut,
J'ai un tracé de contour et j'aimerais voir comment les données varient le long d'une ligne dans le tracé de contour.
Par exemple, le tracé de contour est un tracé de contour d'épaisseur de film. Et j'aimerais voir comment l'épaisseur varie le long d'une ligne que je trace n'importe où sur le tracé de contour.
Est-ce possible?
Yoga
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPYoga,
Il existe plusieurs méthodes pour ajouter un script à une table de données.Je pense que JMP pourrait rendre les choses plus faciles. À titre d'information, ce script ne montre que 3 méthodes pour ajouter un script.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myScript = Expr(Distribution( Column( :Height, :Weight ), By( :sex )) );
//---hard coded method below
//dt << New Script("New Script",Distribution( Column( :Height, :Weight ), By( :sex )) );
//--or use the syntax below that uses expression substitution then Eval() to run it
//Eval( Substitute(Expr( dt << New Script( "New Script", _xx ) ), Expr(_xx), NameExpr(myScript) ) );
//---or use Eval Expr() that does the substitution and Eval() that runs it
Eval( Eval Expr(dt << New Script("New Script", Expr(NameExpr( myScript) ) ) ) );
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Morgane,
Il y avait quelques (mineures) erreurs de syntaxe dans l’exemple de code que vous avez envoyé pour mon exemple. Il m'a fallu un certain temps (je suis très nouveau dans les scripts jmp) pour le réparer, mais cela fonctionne finalement comme je le souhaite. Merci encore pour votre aide. Je joins le script modifié ci-dessous pour les autres personnes qui pourraient le souhaiter.
J'ai également réalisé que si le script est stocké dans la table de données, je n'ai pas besoin de spécifier de chemin d'emplacement (long). Bizarrement, je ne parviens pas à enregistrer un nouveau fichier de script dans la table de données. Il doit être enregistré dans un fichier JSL distinct. Pour contourner ce problème, j'ouvre un script déjà existant dans ma table de données et je le modifie pour saisir le nouveau script.
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Morgane,
Merci encore. Je l'apprécie beaucoup. Je modifierai mes scripts en conséquence.
yoga
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPJ'ai de l'expérience avec les données sur les semi-conducteurs, je comprends donc vouloir faire une analyse pour chaque tranche ou chaque structure.D'après votre déclaration " Cela fonctionne pour un objet. S'il y a plusieurs objets, je ne sais pas comment les regrouper." Je suppose que votre fichier comporte une colonne appelée wafer et/ou structure.
Tout d’abord, une table de données n’a pas besoin d’être nommée dt. Je réutilise les références de variables, mais appeler toutes ces tables dt pourrait prêter à confusion dans un script plus volumineux.Les collisions de noms après la syntaxe et les fautes de frappe sont les causes les plus fréquentes du dysfonctionnement des scripts.
Pour votre script, si vous êtes d'accord avec tous les graphiques placés séquentiellement dans un journal, voici ma suggestion de modification de votre script pour gérer un "par groupe". Il y en a plus ci-dessous ce script.
subp = dt << Bivariate ( Y(:Name( "Rdson" )), X(:X), By(:Wafer) );
xx = subp << Find (Outline Box ("Bivariate ?") );
//this returns all outline boxes with Bivariate in the title, should be one for each wafer
//This adds the title but maintains the By Wafer = xxxxxxx
For(i=1, i <=nitems(xx), i++,
ttl = xx[i] << get title;
p = Contains( ttl, "By"); //find the position of the word By
xx[i] << Set Title(" Rdson Contour at Y==0 " || substr(ttl, p, 100) ); //something large
);Cependant, il existe d'autres méthodes qui vous permettent de présenter un rapport afin que vous puissiez voir chaque tranche avec chacune des numérisations côte à côte.Vous trouverez ci-dessous un exemple utilisant Big Class. J'ai joint un script (voir fichiers). N'ayant pas de table de test, je ne peux pas garantir que cela fonctionnera, mais vous voudrez peut-être l'essayer.
Names default to here(1);
open("$sample_data/Big Class.jmp");
nw = new window("example", lineupbox(ncol(2), Distribution(
Continuous Distribution( Column( :weight, Horizontal Layout(1) ) ),
Histograms Only,
By( :age, :sex )
)));
nw << journal window();
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Morgan (et à tous),
J'ai réussi à le faire fonctionner pour ma table de données. J'ai également réalisé que je n'avais pas besoin de passer tout le temps par le tracé des contours. Je pourrais créer un sous-tableau où tous X==0, et obtenir les données le long de Y et vice-versa, et toute autre coordonnée que j'aime est également possible. Le script que vous avez fourni a beaucoup aidé.
Maintenant, j'essaie de comprendre comment le faire sur plusieurs objets. Mon exemple de script est ci-dessous. Cela fonctionne pour un objet. S'il y a plusieurs objets, je ne sais pas comment les regrouper. Des idées à ce sujet ? J'apprécierais beaucoup.
Dans mon script, j'obtiens actuellement toutes les données d'un objet. Je dois cependant répéter la même chose sur un autre objet. Tous les objets appartiennent à une seule catégorie, par exemple « Wafers » ou « Structure »...
Noms par défaut ici (1);
dt = open("C:/Users/yoga_***/***.jmp");
dt << Sélectionner où (:Y == 0);
dt << Sous-ensemble (Table de sortie ("Sous-ensemble"), Lignes sélectionnées (1), Colonnes sélectionnées (0));
dt = Table de données("Sous-ensemble");
subp = dt << Bivarié ( Y(:Name( "Rdson" )), X(:X) );
report(subp)[OutlineBox(1)] << Set Title( "Rdson Contour at Y==0" );
subp << Fenêtre du journal ();
subp << Fermer la fenêtre ();
dt = open("C:/Users/yoga_***/***.jmp");
dt << Sélectionner où (:X == 0);
dt << Sous-ensemble (Table de sortie ("Subset2"), Lignes sélectionnées (1), Colonnes sélectionnées (0));
dt = Table de données("Sous-ensemble2");
subp = dt << Bivarié ( Y(:Name( "Rdson" )), X(:Y) );
report(subp)[OutlineBox(1)] << Définir le titre( "Rdson Contour at X==0" );
subp << Fenêtre du journal ();
subp << Fermer la fenêtre ();
dt = open("C:/Users/yoga_***/***.jmp");
dt << Sélectionner où (0,95 < :X/:Y < 1,05);
dt << Sous-ensemble (Table de sortie ("Subset3"), Lignes sélectionnées (1), Colonnes sélectionnées (0));
dt = Table de données("Sous-ensemble3");
subp = dt << Bivarié ( Y(:Name( "Rdson" )), X(:X) );
report(subp)[OutlineBox(1)] << Définir le titre( "Rdson Contour at X==Y" );
subp << Fenêtre du journal ();
subp << Fermer la fenêtre ();
close(Table de données("Sous-ensemble"), NoSave);
close(Table de données("Subset2"), NoSave);
close(Table de données("Subset3"), NoSave);
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Morgane,
C'est exactement ce que je veux. Je fais normalement ce sous-programme sans script. Ce script aide.
Maintenant, j'essaie de comprendre comment intégrer ce script dans mes besoins actuels.
Vous tiendrons au courant.
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Morgane,
Merci pour la réponse détaillée. Je vais essayer de vous tenir (tous) au courant.
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPIl existe plusieurs méthodes pour obtenir une vue en coupe transversale d’un contour.Cependant, il se peut qu'il ne s'agisse pas d'une instruction intégrée ou unique qui pourrait être disponible dans d'autres programmes.
J'ai joint un script appelé ContourCrossSection.jsl . Il utilise les exemples de données JMP Little Pond.jmp. Les données représentent les profondeurs d'un étang. Il crée un contour, une vue en coupe unique (à l'aide de Fit Y by X, Bivariate) et une vue comparative de 3 coupes (à l'aide de Graph Builder).
Si vous n'êtes pas familier avec JSL, exécutez simplement le programme. Je l'ai testé dans JMP12, 13 et 14. La clé est l’option que vous pouvez obtenir à partir des options de tracé de contour.Sur le tracé du contour JMP, sélectionnez le menu traingle rouge, sélectionnez Sauvegarder , puis sélectionnez Générer une grille .Spécifiez le nombre de tranches X et Y et une xygrid est générée.
Voici quelques autres idées :
- Si le nombre de points d'échantillonnage n'est pas dense, envisagez de créer une courbe plus lisse avec un réseau neuronal ou une autre plate-forme. Parfois, la triangulation est erronée. Avec une fonction, il existe plusieurs méthodes pour obtenir une section transversale.
- Apprenez à utiliser le Contour Profiler avec un maillage. Ajoutez ensuite un filtre de données local à partir du menu et définissez la plage de Y ou X sur quelque chose comme 50 <=Y <= 50,1 Tout cela est interactif. Il existe d'autres options dans le profileur.
- Si vous pouvez l'obtenir facilement à partir d'un autre programme auquel vous avez accès, vous pouvez accéder à R, MatLab, SAS et dans JMP14, Python en utilisant JSL et Run Program.
J'espère que cela t'aides.
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Cameron,
Non, pas une spline de lissage. Il semble qu'il n'y ait aucun moyen de l'obtenir maintenant, à moins de suivre la manière sinueuse d'obtenir des sous-ensembles de données.
Cela ne devrait pas être trop difficile d'ajouter cette fonctionnalité dans jmp. Il est généralement présent dans de nombreux logiciels qui cartographient les paramètres dans le XY pour donner un tracé de contour. Et nous pouvons jouer pour voir comment cela varie le long de n'importe quelle ligne que nous traçons à travers le contour.
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPDécrivez-vous une coupe transversale du film comme un profil croisé sur une tranche particulière le long de la direction descendante de la bande ? Si tel est le cas, je ne pense pas qu'il soit possible d'obtenir cela à partir du profileur de contours.
Avez-vous besoin de tracer une ligne qui interpole entre les points de données dans cette section transversale, comme une spline de lissage ?
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut Cameron,
Pas exactement. Je recherche la variation des paramètres lorsque je trace une ligne d'un bout à l'autre de mon tracé de contour. Je vais essayer de l'illustrer de la meilleure façon possible ici.
J'ai un tracé de contour d'épaisseur de film variant sur un substrat. Ensuite, je pourrais choisir n’importe quel X (ou Y) donné et tracer une ligne d’un bout à l’autre. Supposons que je veuille tous les points à Y=0 mais X variant de -50 à +50. Je trace une ligne horizontale de -50 à +50. Ensuite, j'aimerais voir comment l'épaisseur varie sur cette ligne et un tracé apparaît sur le côté.
Je pourrais le faire de manière sinueuse. Prenez l'ensemble de données. Ensuite, prenez un autre sous-ensemble de tous les points de données avec Y=0. Tracez ensuite l'épaisseur par rapport à X (pour tout Y = 0).
J'aimerais que cela puisse être fait en arrière-plan lorsque je trace simplement une ligne n'importe où.
Re : Obtenir des données d'analyse de ligne à partir de tracés de contour dans JMPSalut @Yoga ,
Êtes-vous en train de dire que vous souhaitez tracer des points de données au-dessus de votre tracé de contour ?Si c'est le cas, regarde ce fil : https://community.jmp.com/t5/Discussions/Adding-special-data-points-with-labels-to-a-contour-plot/mp/52455