<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
JSL est presque complètement nouveau, alors excusez-moi si ma question semble triviale ...
Quoi qu'il en soit, je traite avec une table de données contenant des données spectroscopiques traitées, chaque ligne correspondant à un jeu de données spectroscopique XY spécifique, situées dans des fichiers .txt distincts. À présent, je souhaite générer dynamiquement des graphiques de superposition des jeux de données brutes correspondant aux cellules / lignes actuellement sélectionnées.
Par exemple, je sélectionne les lignes 2 et 3 et le script ouvre les deux fichiers .txt correspondants, les met à jour dans une nouvelle table de données temporaire et génère le tracé de superposition avec les 2 séries de données. La prochaine fois que je sélectionne les lignes 6 à 9, il va de soi que le tracé de superposition résultant doit contenir 4 séries de données.
Mon script pour faire tout cela fonctionne bien jusqu'à générer des superpositions de manière dynamique.
Simplifié, générer l'intrigue ressemble à ceci:
Superposition de parcelle (
X (: Nom ("cm-1")),
Y (
analyser (plot1),
analyser (plot2),
parse (plot3)
),
Points de connexion (1),
Afficher les points (0),
)
Avec les variables plot1 etc. correspondant aux colonnes de la table de données temporaire. Cependant, la quantité de séries de données est fixée dans cet exemple (3) - et c'est là que je suis bloqué. Puis-je en quelque sorte rendre cette dynamique? Donc, fondamentalement, le script modifie-t-il la quantité de Y en fonction du nombre de cellules / lignes sélectionnées?
par exemple Y (parse (plot1)) s'il n'y en a qu'un, Y (parse (plot1), parse (plot2), parse (plot3), parse (plot4)) s'il y a 4?
Les variables de tracé # sont déjà générées dynamiquement en fonction du nombre de lignes sélectionnées. Donc, tout ce dont j'ai besoin, c'est d'un moyen de faire en sorte que le nombre d'entrées dans l'expression Y () corresponde de manière dynamique au nombre de lignes sélectionnées.
Toute aide serait très appréciée!
Wow c'était rapide! Ça marche, génial!
Merci beaucoup, c'est apprécié!
à votre santé!
Utilisez une liste de colonnes Y: Y (liste) ou Y (eval (liste)). Par exemple:
dt = Tableau de données actuel () ; // Table de données temporaire
n1 = 2 ; // nombre de lignes sélectionnées à l'origine
n2 = N Col ( dt ) ; // nombre total de colonnes en dt
Superposition de parcelle (
X ( : Nom ("cm-1") ) ,
Y ( ( dt << obtenir des noms de colonnes ) [ n2 - n1 + 1 :: n2 ] )
// Liste des colonnes Y, en supposant qu'elles se trouvent à la fin du tableau Temp
) ;