Aide sur le tracé de superposition en obtenant des noms de colonneSalut à tous, espérons que quelqu'un pourra m'aider.
Je dois créer un graphique dans lequel le nombre de colonnes numériques change de temps en temps, mais à la fin, je dois tracer toutes mes colonnes numériques dans le tracé de superposition, comme indiqué dans le script ci-dessous.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Overlay Plot( X( :name ), Y( :height, :weight ), Connect Thru Missing( 1 ) );
C’est ce que j’ai essayé mais les graphiques sont créés séparés, je me demande chaudement d’accepter l’instruction pour l’axe des Y. Merci d'avance.
dt = Data Table ("Big Class");
list = dt << get column names(numeric, continuous);
show (list);
For( i = 1, i <= N Items(list), i++,
Overlay Plot(
Y( Column( list[i] ) ),
X( :name ), Connect Thru Missing( 1 ) ) );Re: Aide avec le tracé de superposition par obtenir les noms de colonneC'est aussi une approche différente,
Merci pour votre soutien @ian_jmp et @Mme
Re: Aide avec le tracé de superposition par obtenir les noms de colonneIl y a 2 bonnes solutions à votre question. J'ajoute ceci en tant que FYI, pour une 3ème alternative.
J'aime travailler avec les noms de colonnes sous forme de texte. Lorsque vous avez une liste de noms de colonnes (chaîne), certaines plates-formes (pas toutes) nécessitent Eval List (), je suggère donc de l’utiliser pro forma (une norme).
dt = Open("$SAMPLE_DATA/Big Class.jmp");
mylist = dt << get column names(numeric, continuous, string);
op = Overlay Plot(Y(EvalList(mylist)), X(:name), Connect Thru Missing(1));
Re: Aide avec le tracé de superposition par obtenir les noms de colonneJe vous remercie @ gzmorgan0 pour votre réponse, je l'apprécie.
J'ai une question supplémentaire, si le cas est que j'ai plusieurs colonnes numériques, continues dans mon tableau, mais je veux juste créer mon tracé de superposition avec quelques colonnes.
Quelle est la meilleure approche pour sélectionner la liste des colonnes dans une boucle?
Supposons que je souhaite que la boucle ne soit sélectionnée que dans la colonne 3 (colonne 3 numérique, continue jusqu'à <= N éléments), ou dans la boucle 1 (colonne 1 numérique, continue de moins de 2 éléments N au total).
Merci d'avance.
Re: Aide avec le tracé de superposition par obtenir les noms de colonneJe ne comprends pas très bien votre question et je vais donc vous donner quelques indications. Vous devriez lire sur les listes et travailler avec les listes. Par exemple,
mylist = words("abcdefghijklmnopqrstuvwxyz","");
show(mylist); // see the log list of characters a-z
show( mylist[ 3::nitems(mylist)-2 ] ); //see log c-x
Je suppose que si vous voulez commencer après la colonne 3, vous savez ce que pourraient être les 3 premières colonnes. Une approche consisterait donc à obtenir tous les noms de colonnes continus et à supprimer les noms des 3 premières colonnes.
Re: Aide avec le tracé de superposition par obtenir les noms de colonnesalut @ gzmorgan0 désolé de ne pas être aussi clair avec ma question.
Permettez-moi d’essayer d’expliquer plus en profondeur. Parfois, mes tables contiennent de 5 à 7 colonnes. Puis, dans les colonnes numérique / continu, je souhaite exclure la première colonne ou un autre script consiste à n’exclure que les 2 dernières. quand je dis exclure, je veux dire que les noms de colonnes peuvent les exclure.
Y a-t-il un moyen de le faire en boucle?
Une autre option est, mes colonnes non désirées (si c'est le cas) sont toujours dans la première colonne ou les 2 dernières colonnes en ce qui concerne le type de colonne (numérique, charcater, etc.), existe-t-il également un moyen de récupérer les noms de colonne en utilisant boucle?
Je vous remercie!!!
Re: Aide avec le tracé de superposition par obtenir les noms de colonneDésolé, ce n'est toujours pas du "cristal". Lorsque vous vous référez à la première colonne, s'agit-il de la première colonne du tableau ou de la première colonne continue? Même question concernant les 2 dernières colonnes. De plus, connaissez-vous les noms des colonnes que vous souhaitez exclure? Cela devrait-il être sensible à la casse?
J'ai le sentiment que vous demandez peut-être comment sauter certaines colonnes. Ne sachant pas exactement ce que vous recherchez, voici un exemple qui pourrait vous aider. nolist est une liste de noms connus à ignorer.
Names Default to Here(1);
dt = Open("$sample_data/Semiconductor Capability.jmp");
cnames = dt << get column names("numeric", "String");
nolist = {"wafer", "site", "datetime"};
nw = New Window("Overlay Plots", lub = LineUpBox(ncol(3)));
For(i=1,i<=nitems(cnames), i++,
if (contains(nolist, lowercase(cnames[i]) ), continue() ); //next i
if( Col Number(column(cnames[i]) ) == 0 | Col Std Dev(column(cnames[i])) == 0, continue() ); //next i, no need to plot a constant.
//otherwise
vl = VlistBox(op = Overlay Plot(Y( Column(cnames[i])), X(:lot_id) ) );
Report(op)[OutlineBox(1)] << set title("Overlay Plot: " || cnames[i] || " vs. lot_id");
lub << append(vl);
);
Si vous ne connaissez pas les noms à ignorer, sachez simplement qu’ils occupent certaines positions du tableau, créez un nolist
//or create nolist
nolist = {};
Insert Into(nolist, Column(dt,1) << get name);
Insert Into(nolist, Column(dt, ncol(dt)-1) << get name);
Insert Into(nolist, Column(dt, ncol(dt)) << get name);
show(nolist);
Vous pouvez également supprimer ces noms des noms de fichiers. [Je ne sais pas exactement d'où viennent ces positions.] Si vous souhaitez simplement supprimer les 1 et les 2 dernières colonnes continues, obtenez simplement toutes les colonnes continues comme indiqué dans le script, puis
cnames = cnames[ 2::nitems(cnames)-2 ];
maintenant les noms ne possèdent plus ces valeurs.
Re: Aide avec le tracé de superposition par obtenir les noms de colonneJe vous remercie @ gzmorgan0 avec le nolist = {}; et cnames = cnames [2 :: nitems (cnames) -2]; J'ai les options que je cherchais.
Désolé de ne pas être si clair.
Je voulais juste comprendre comment obtenir les noms de colonne (quel que soit leur type) pour des colonnes spécifiques en fonction de leur position.
Votre réponse m'a déjà aidé à résoudre mon problème.
Merci encore.
Re: Aide avec le tracé de superposition par obtenir les noms de colonneL'argument de Y (...) semble pas être évalué au moment de l'exécution par le Superposition de parcelle Plate-forme.
Voici un moyen de forcer le remplacement de la variable de liste par une liste explicite de colonnes avant de créer le tracé:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
list = dt << get column names(numeric, continuous);
op = Expr(
Overlay Plot(Y((Expr(list))), X(:name), Connect Thru Missing(1))
);
Eval(Eval Expr(op));Re: Aide avec le tracé de superposition par obtenir les noms de colonneFYI, cela fonctionne aussi:
myOP = dt << Overlay Plot(Y(dt << get column names(numeric, continuous)), X(:name), Connect Thru Missing(1));