<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich bin fast völlig neu in JSL, also entschuldige mich, wenn meine Frage trivial erscheint ...
Jedenfalls habe ich es mit einer Datentabelle zu tun, die verarbeitete spektroskopische Daten enthält, wobei jede Zeile einem spezifischen spektroskopischen XY-Datensatz entspricht, der sich jeweils in separaten TXT-Dateien befindet. Jetzt möchte ich dynamisch Überlagerungsdiagramme der Rohdatensätze generieren, die den aktuell ausgewählten Zellen / Zeilen entsprechen.
Zum Beispiel wähle ich die Zeilen 2 und 3 aus und das Skript öffnet beide entsprechenden TXT-Dateien, aktualisiert sie in eine neue temporäre Datentabelle und generiert das Overlay-Diagramm mit den beiden Datenreihen. Das nächste Mal, wenn ich die Zeilen 6 bis 9 auswähle, sollte das resultierende Overlay-Diagramm natürlich 4 Datenreihen enthalten.
Mein Skript, um all dies zu tun, funktioniert gut, bis die Overlay-Diagramme tatsächlich dynamisch generiert werden.
Die Plotgenerierung sieht vereinfacht aus:
Überlagerungsdiagramm (
X (: Name ("cm-1")),
Y (
parse (plot1),
parse (plot2),
analysieren (plot3)
)
Verbindungspunkte (1),
Punkte anzeigen (0),
);
Mit den Variablen plot1 etc. entsprechend den Spalten in der temporären Datentabelle. Die Menge der Datenreihen ist jedoch in diesem Beispiel festgelegt (3) - und da stecke ich fest. Kann ich das irgendwie dynamisieren? Hat das Skript also grundsätzlich die Anzahl der Ys in Abhängigkeit von der Anzahl der ausgewählten Zellen / Zeilen geändert?
z.B Y (parse (plot1)) wenn es nur einen gibt, Y (parse (plot1), parse (plot2), parse (plot3), parse (plot4)) wenn es 4 gibt?
Die Diagrammvariablen werden bereits basierend auf der Anzahl der ausgewählten Zeilen dynamisch generiert. Alles, was ich brauche, ist also eine Möglichkeit, die Anzahl der Einträge im Y () - Ausdruck dynamisch der Anzahl der ausgewählten Zeilen anzupassen.
Jede Hilfe wäre sehr dankbar!
Wow das war schnell! Es funktioniert super!
Vielen Dank, es wird geschätzt!
Prost!
Verwenden Sie eine Liste mit Y-Spalten: Y (Liste) oder Y (Eval (Liste)). Zum Beispiel:
dt = Aktuelle Datentabelle () ; // Tempdatentabelle
n1 = 2 ; // Anzahl der ursprünglich ausgewählten Zeilen
n2 = N Col ( dt ) ; // Gesamtanzahl der Spalten in dt
Überlagerungsplot (
X ( : Name ("cm-1") ) .
Y ( ( dt << Spaltennamen erhalten ) [ n2 - n1 + 1 :: n2 ] )
// Liste der Y-Spalten, vorausgesetzt, sie befinden sich am Ende der Temp-Tabelle
) ;