<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Sono quasi completamente nuovo alla JSL, quindi scusami se la mia domanda sembra banale ...
Ad ogni modo, mi occupo di una tabella di dati che contiene dati spettroscopici elaborati, con ogni riga corrispondente a uno specifico dataset XY spettroscopico che si trovano ciascuno in file .txt separati. Ora, voglio generare dinamicamente i grafici sovrapposti dei set di dati grezzi corrispondenti alle celle / righe attualmente selezionate.
Ad esempio, seleziono le righe 2 e 3 e lo script apre entrambi i file .txt corrispondenti, li aggiorna in una nuova tabella di dati temporanei e genera il grafico di sovrapposizione con le 2 serie di dati. La prossima volta selezionerò le righe da 6 a 9 e, ovviamente, il grafico di sovrapposizione risultante dovrebbe contenere 4 serie di dati.
Il mio script per fare tutto questo funziona fino al punto di generare effettivamente i grafici sovrapposti in modo dinamico.
Semplificato, la generazione della trama è simile a questa:
Sovrapposizione trama (
X (: Nome ("cm-1")),
Y (
parse (Plot1),
parse (Plot2),
parse (plot3)
),
Connect Points (1),
Mostra punti (0),
);
Con la trama delle variabili 1 ecc. corrispondente alle colonne nella tabella di dati temporanei. Tuttavia, la quantità di serie di dati è fissa in questo esempio (3) - ed è qui che sono bloccato. Posso in qualche modo renderlo dinamico? Quindi in pratica lo script cambia la quantità di Y in base al numero di celle / righe selezionate?
per esempio Y (parse (plot1)) se c'è solo uno, Y (parse (plot1), parse (plot2), parse (plot3), parse (plot4)) se c'è 4?
Le variabili # trama sono già generate dinamicamente in base alla quantità di righe selezionate. Quindi tutto ciò di cui ho bisogno è davvero un modo per avere dinamicamente il numero di voci nell'espressione Y () corrispondente al numero di righe selezionate.
Qualsiasi aiuto sarebbe molto apprezzato!
Wow, è stato veloce! Funziona, fantastico!
Grazie mille, è apprezzato!
Saluti!
Utilizzare un elenco di colonne Y: Y (elenco) o Y (eval (elenco)). Per esempio:
dt = Tabella dei dati corrente () ; // Tabella dei dati temporanei
n1 = 2 ; // numero di righe originariamente selezionate
n2 = N Col ( dt ) ; // numero totale di colonne in dt
Sovrapposizione trama (
X ( : Nome ("cm-1") ) ,
Y ( ( dt << ottieni i nomi delle colonne ) [ n2 - n1 + 1 :: n2 ] )
// Elenco delle colonne Y, assumendo che siano alla fine della tabella Temp
) ;