Comment puis-je utiliser JSL pour créer un "Overlay Plot" avec des séries de données ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde,
Je voudrais créer un tracé de superposition avec plusieurs séries de données.Je vois comment je peux copier le script et le coller dans mon code, mais que se passe-t-il si je ne sais pas à l'avance combien de colonnes j'aurai ?De plus, que puis-je faire pour utiliser différents marqueurs également ?
Voici une copie de mon script.C'est l'un de mes plus petits fichiers, donc naturellement je ne voudrais pas avoir à taper toutes ces lignes !Merci d'avance.
Tracé de superposition(
X( :Tension_Drain ),
Oui(
:Y_17,
:Y_18,
:Y_19,
:Y_20,
:Y_21,
:Y_22,
:Y_23,
:Y_24,
:Y_25,
:Y_26,
:Y_27,
:Y_28,
:Y_29,
:Y_30,
:Y_31,
:Y_32,
:Y_33,
:Y_34,
:Y_35,
:Y_36,
:Y_37,
:Y_38,
:Y_39
),
Axe de superposition << {{Min( 0.01 ), Max( 100 ), Inc( 1 ), Minor Ticks( 1 )}},
:Y_17( Marqueur de superposition( 8 ) ),
:Y_18( Marqueur de superposition( 1 ) ),
:Y_20( Marqueur de superposition( 2 ) ),
:Y_21( Marqueur de superposition( 5 ) ),
:Y_22( Marqueur de superposition( 6 ) ),
:Y_23( Marqueur de superposition( 17 ) ),
:Y_24( Marqueur de superposition( 7 ) ),
:Y_25( Marqueur de superposition( 11 ) ),
:Y_26( Marqueur de superposition( 3 ) ),
:Y_27( Marqueur de superposition( 18 ) ),
:Y_28( Marqueur de superposition( 19 ) ),
:Y_29( Marqueur de superposition( 24 ) ),
:Y_30( Marqueur de superposition( 25 ) ),
:Y_31( Marqueur de superposition( 26 ) ),
:Y_32( Marqueur de superposition( 27 ) ),
:Y_33( Marqueur de superposition( 28 ) ),
:Y_34( Marqueur de superposition( 29 ) ),
:Y_35( Marqueur de superposition( 30 ) ),
:Y_36( Marqueur de superposition( 31 ) ),
:Y_37( Marqueur de superposition( 9 ) ),
:Y_38( Marqueur de superposition( 10 ) ),
:Y_39( Marqueur de superposition( 8 ) ),
EnvoyerVersRapport(
Expédition(
{},
"102",
ScaleBox,
{Min( 0.01 ), Max( 100 ), Inc( 1 ), Tiques mineures( 1 )}
),
Dispatch( {}, "", AxisBox, {Ajouter une étiquette d'axe( "Idleak (uA)" )} ),
Dispatch( {}, "Y", TextEditBox, {Set Text( "Idleak (uA)" )} ),
Dispatch( {}, "Overlay Plot Graph", FrameBox, {Frame Size( 740, 585 )} )
)
)
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?N'oubliez pas que 'Help > Scripting Index' est votre ami ici.
L'exemple donné est :
Noms par défaut ici ( 1 ) ;
ex = { 11 , 22 , 33 , 44 , 55 } ;
Retirer ( ex , 3 , 2 ) ;
ex ;
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Re-bonjour,
J'ai une question de syntaxe.Comment puis-je supprimer plusieurs colonnes d'une liste ?
J'ai essayé ce Remove From(y_cols, 1 :: 57), mais cela ne fonctionne pas.
Merci!
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Merci, cela a beaucoup de sens en fait.J'aime le N Articles fonction aussi.Je pense que cela peut être utile à coup sûr.
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Je vois. Si vous utilisez la méthode rapide pour obtenir une liste de toutes les colonnes numériques comme dans mon deuxième exemple, la première colonne doit être supprimée.
Une alternative consiste à créer la liste dans une boucle For et à n'inclure que les colonnes dont vous avez besoin.
Pour supprimer le premier élément d'une liste :
Retirer ( y_cols , 1 ) ;
Si la colonne x est toujours la première mais que son nom peut changer, il peut être utile de la conserver dans la liste comme dans l'exemple ci-dessous. Notez comment j'utilise des indices pour spécifier les colonnes qui entrent dans les rôles X et Y, respectivement.
dt = Ouvrir ( "$SAMPLE_DATA\Grande classe.jmp" ) ;
pf = [ 8 , 26 , 2 , 5 , 6 , 17 , 7 , 11 , 3 , 18 , 19 , 24 , 25 ] ; // ordre de marqueur préféré
cols = dt << obtenir les noms de colonnes ( chaîne , numérique ) ; // Liste des noms de colonnes ; x premier
n = N articles ( cols ) ;
// Créer un tracé superposé
op = dt << Tracé de superposition ( X ( cols [ 1 ]) , Oui ( cols [ 2 :: n ])) ;
// Placer des marqueurs
Pour ( je = 2 , je <= n , je ++,
Éval ( Analyser ( "op<<:" || cols [ je ] || "(Marqueur de superposition(" || Carboniser ( pf [ je ]) || "))" ))
) ;
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Ma première colonne de mon tableau contient mes valeurs x.Je ne veux tout simplement pas l'inclure en tant que colonne Y dans le code.
Merci
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Que veux-tu dire? La colonne X ? Ou la première colonne du tableau ?
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Oh encore une chose, que dois-je faire si je ne veux pas inclure la première colonne ?
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Merci beaucoup!Cela fonctionne bien.
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Oublié les marqueurs. Voir ci-dessous pour un exemple où la commande Overlay Marker est construite comme une chaîne avant d'être analysée et évaluée. Peut exister une approche plus simple.
dt = Ouvrir ( "$SAMPLE_DATA\Grande classe.jmp" ) ;
pf = [ 8 , 26 , 2 , 5 , 6 , 17 , 7 , 11 , 3 , 18 , 19 , 24 , 25 ] ; // ordre de marqueur préféré
y_cols = dt << obtenir les noms de colonnes ( chaîne , numérique ) ; // Liste de y noms de colonnes
// Créer un tracé superposé
op = dt << Tracé de superposition ( X ( : âge ) , Oui ( Éval ( y_cols ))) ;
// Placer des marqueurs
Pour ( je = 1 , je <= N articles ( y_cols ) , je ++,
Éval ( Analyser ( "op<<:" || y_cols [ je ] || "(Marqueur de superposition(" || Carboniser ( pf [ je ]) || "))" ))
) ;
Re : Comment puis-je utiliser JSL pour créer un "Tracé de superposition" avec des séries de données ?Une liste de colonnes peut être utilisée pour définir dynamiquement des colonnes Y :
dt = Ouvrir ( "$SAMPLE_DATA\Grande classe.jmp" ) ;
y_cols = { : hauteur , : lester } ;
dt << Tracé de superposition ( X ( : âge ) , Oui ( Éval ( y_cols ))) ;