Hilfe beim Überlagerungsdiagramm von Spaltennamen abrufenHallo zusammen, hoffe jemand kann mir helfen.
Ich muss ein Diagramm erstellen, in dem sich die Anzahl der numerischen Spalten von Zeit zu Zeit ändert. Am Ende muss ich jedoch alle meine numerischen Spalten in der Überlagerungsdarstellung zeichnen, wie im folgenden Skript gezeigt.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Overlay Plot( X( :name ), Y( :height, :weight ), Connect Thru Missing( 1 ) );
Ich habe es versucht, aber Diagramme werden getrennt erstellt. Ich frage mich, ob ich die Anweisung für die Y-Achse akzeptieren möchte. Danke im Voraus.
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 ) ) );Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenDies ist auch ein anderer Ansatz,
danke für die Unterstützung @ian_jmp und @Frau
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenEs gibt 2 gute Lösungen für Ihre Frage. Ich füge dies als FYI hinzu, für eine dritte Alternative.
Ich arbeite gerne mit den Spaltennamen als Text. Wenn Sie eine Liste mit Spaltennamen (Zeichenfolge) haben, benötigen bestimmte Plattformen (nicht alle) Eval List (). Ich empfehle daher, sie pro forma (einem Standard) zu verwenden.
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));
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenVielen Dank @ gzmorgan0 Für Ihre Antwort schätze ich es.
Ich habe eine zusätzliche Frage, wenn der Fall ist, dass ich mehrere numerische Spalten habe, die in meiner Tabelle fortlaufend sind, aber ich möchte nur mein Überlagerungsdiagramm mit einigen Spalten erstellen.
Was ist der beste Ansatz, um die Liste der Spalten aus einer Schleife auszuwählen?
Nehmen wir an, ich möchte, dass die Schleife nur aus Spalte 3 (Spalte 3 numerisch, weiter zu <= N Items) oder aus Spalte 1 (Spalte 1 numerisch, weiterhin um 2 insgesamt N Items) ausgewählt wird.
Danke im Voraus.
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenIch verstehe Ihre Frage nicht genau, deshalb gebe ich Ihnen ein paar Hinweise. Sie sollten sich über Listen informieren und mit Listen arbeiten. Zum Beispiel,
mylist = words("abcdefghijklmnopqrstuvwxyz","");
show(mylist); // see the log list of characters a-z
show( mylist[ 3::nitems(mylist)-2 ] ); //see log c-x
Ich gehe davon aus, wenn Sie nach Spalte 3 beginnen möchten, wissen Sie, was die ersten 3 Spalten sein könnten. Ein Ansatz wäre also, alle fortlaufenden Spaltennamen abzurufen und die Namen der ersten 3 Spalten zu entfernen.
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenHallo @ gzmorgan0 Entschuldigung, dass ich mit meiner Frage nicht so klar bin.
Lassen Sie mich versuchen, tiefer zu erklären. Manchmal enthalten meine Tabellen 5 oder bis zu 7 Spalten. Dann möchte ich aus den Spalten Numerisch / Endlos die erste Spalte ausschließen, oder ein anderes Skript würde nur die letzten 2 Spalten ausschließen. wenn ich sagte ausschließen, beziehe ich mich darauf, dass Spaltennamen sie ausschließen können.
Gibt es eine Möglichkeit, die Schleife zu durchlaufen?
Eine andere Möglichkeit ist, meine unerwünschten Spalten (wenn es der Fall ist) sind immer in der ersten Spalte oder den letzten 2 Spalten bezüglich des Spaltentyps (numerisch, Zeichen etc.) Schleife?
Vielen Dank!!!
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenSorry, das ist immer noch nicht "Kristall". Wenn Sie sich auf die erste Spalte beziehen, ist dies die erste Spalte in der Tabelle oder die erste durchgehende Spalte? Gleiche Frage zu den letzten 2 Spalten. Kennen Sie auch die Namen der Spalten, die Sie ausschließen möchten? Sollte dies der Fall sein?
Ich habe das Gefühl, Sie fragen sich vielleicht, wie Sie bestimmte Spalten überspringen. Nicht genau wissen, wonach Sie suchen, hier ist ein Beispiel, das helfen könnte. Nolist ist eine Liste bekannter Namen, die übersprungen werden können.
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);
);
Wenn Sie die zu überspringenden Namen nicht kennen, wissen Sie nur, dass sie an bestimmten Positionen in der Tabelle stehen. Erstellen Sie ein 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);
Sie können diese Namen auch aus cnames entfernen. [Ich bin nicht sicher, wo genau diese Positionen herkommen.] Wenn Sie nur die 1 und die letzten 2 durchgehenden Spalten entfernen möchten, rufen Sie einfach alle fortlaufenden Spalten als im Skript gezeigt auf
cnames = cnames[ 2::nitems(cnames)-2 ];
Jetzt haben cnames diese Werte nicht mehr.
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenVielen Dank @ gzmorgan0 mit der nolist = {}; und cnames = cnames [2 :: nitems (cnames) -2]; Ich habe die Optionen, nach denen ich gesucht habe.
Sorry für nicht so klar.
Ich wollte nur herausfinden, wie man die Spaltennamen (unabhängig vom Spaltentyp) für bestimmte Spalten anhand ihrer Position erhält.
Ihre Antwort hat mir bereits geholfen, meine Bedenken auszuräumen.
Danke noch einmal.
Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenDas Argument von Y (...) scheint zur Laufzeit von der nicht ausgewertet zu werden Überlagerungsdiagramm Plattform.
Hier ist eine Möglichkeit, die Ersetzung der Listenvariablen durch eine explizite Liste von Spalten vor dem Erstellen des Diagramms zu erzwingen:
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));Betreff: Hilfe mit Überlagerungsdiagramm von Spaltennamen abrufenZu Ihrer Information, das funktioniert auch:
myOP = dt << Overlay Plot(Y(dt << get column names(numeric, continuous)), X(:name), Connect Thru Missing(1));