JSL - Création d'une boucle pour le rapport de distribution personnalisé<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
existe-t-il un moyen de créer une variable d'espace réservé via un tableau pouvant être substitué dans la syntaxe de la couche de rapport de distribution ? Le code que j'ai vient de boucler la distribution en me donnant 10 fenêtres avec 10 graphiques chacune sans ajustement de cadre. Je veux 1 fenêtre avec 10 graphiques dont la taille du cadre a été ajustée.
Mon code
/*Exécuter la matrice d'analytes*/
analyteArr = Tableau associatif ( : Analyte ) << Obtenir des clés ;
Pour ( chaque analyte = 1 , chaque analyte <= N articles ( analyteArr ) , chaque analyte ++,
/*Répartition de la pente*/
Tableau de données actuel ( dtmain ) ;
dtmain << Distribution (
Recalcul automatique ( 1 ) ,
SendToByGroup ( { : Analyte == analyteArr [ chaque analyte ]} ) ,
SendToByGroup (
{ : Analyte == analyteArr [ chaque analyte ]} ,
Distribution continue ( Colonne ( : Pente ) , Vertical ( 0 ) )
) ,
Par ( : Analyte ) ,
SendToByGroup (
{ : Analyte == analyteArr [ chaque analyte ]} ,
Envoyer vers le rapport (
Expédition (
{ "Distributions Analyte=" || analyteArr [ chaque analyte ] , "Pente" } ,
"Boîte de distribution des valeurs aberrantes" ,
FrameBox ,
{ Taille du cadre ( 550 , 50 )}
) ,
Expédition (
{ "Distributions Analyte=" || analyteArr [ chaque analyte ] , "Pente" } ,
"Histogramme de distribution" ,
FrameBox ,
{ Taille du cadre ( 550 , 325 )}
)
)
)
)
) ;
Re : JSL - Création d'une boucle pour un rapport de distribution personnaliséSalut,
Ce fil m'a aidé à venir avec un JSL pour générer plusieurs parcelles. Mais je vois actuellement le même problème de tracés en double (comme 10x10 au lieu de 10). Pouvez-vous partager comment l'avez-vous résolu?
Je suppose que la boucle 'For' et 'By' sont à l'origine de cela, mais si je supprime 'By', les tracés ne s'affichent pas correctement.
Re : JSL - Création d'une boucle pour un rapport de distribution personnalisé
Vous semblez être à la fois en boucle et en utilisant également Par regroupement ..... c'est peut-être ce qui peut expliquer votre nombre 10x de graphiques
Re : JSL - Création d'une boucle pour un rapport de distribution personnaliséMerci pour l'aide avec ceci,
Cela semble ajuster la première de mes variables par mais pas le reste. Je pense qu'il doit y avoir quelque chose qui ne va pas avec la façon dont je boucle. Non seulement cela n'ajuste que la première de mes variables by, mais je viens de remarquer que dans la fenêtre unique, j'ai 100 graphiques au lieu des 10 que j'attendais (les 10 x 10 que j'obtenais dans une seule fenêtre).
Re : JSL - Création d'une boucle pour un rapport de distribution personnaliséLe problème est que vous essayez de modifier des éléments dans une liste, et JMP regarde les listes et dit qu'une liste n'est qu'un tas de choses, donc il ne va pas y toucher.Ainsi, la méthode que j'utilise pour créer les listes sous la forme souhaitée consiste à utiliser la fonction Substitute, puis lorsque j'ai la liste comme je le souhaite, JMP évalue ce que j'ai construit.Je ne peux pas être sûr que le code ci-dessous correspond exactement à ce dont vous avez besoin, mais il devrait être proche.pour tester que le substitut fonctionne correctement, exécutez simplement éliminer la fonction "Eval" qui entoure la commande Substitute et exécutez simplement la commande Substitute par elle-même, et elle affichera les résultats dans le journal ......
//Créer une fenêtre d'affichage et y placer les distributions
Nouvelle fenetre (
"Tous ensemble" ,
// disposer les distributions côte à côte
H Zone de liste (
/*Exécuter la matrice d'analytes*/
analyteArr = Tableau associatif ( : Analyte ) << Obtenez des clés ;
Pour ( chaque Analyte = 1 , chaque analyte <= N articles ( analyteArr ) , chaque analyte ++,
/*Répartition de la pente*/
Tableau de données actuel ( dtmain ) ;
Éval (
Remplaçant (
Expr (
dtmain << Distribution (
Recalcul automatique( 1 ) ,
SendToByGroup( {__by__} ) ,
EnvoyerVersParGroupe(
{__par__} ,
Distribution continue( Colonne ( : Pente ) , Vertical( 0 ) )
) ,
Par( : Analyte ) ,
EnvoyerVersParGroupe(
{__par__} ,
EnvoyerVersRapport(
Expédition(
{__Dist__ , "Pente" } ,
"Boîte de distribution des valeurs aberrantes" ,
FrameBox ,
{Taille du cadre( 550 , 50 )}
) ,
Expédition(
{__Dist__ , "Pente" } ,
"Histogramme de distribution" ,
FrameBox ,
{Taille du cadre( 550 , 325 )}
)
)
)
) ;
) , Expr (__par__) , Analyser ( ":Analyte ==" carboniser ( eval ( analyteArr[chaqueAnalyte]))) ,
Expr (__Dist__) , "Distributions Analyte=" || carboniser ( eval (analyteArr[chaqueAnalyte])))
)
) ;
)
) ;
Re : JSL - Création d'une boucle pour un rapport de distribution personnaliséMerci Jim,
Cela empêche certainement les 10 fenêtres d'apparaître.
En ce qui concerne les ajustements de taille de trame, je parle de la partie du code qui dicte que les tailles de trame doivent être respectivement de 550, 50 et 550, 325. Actuellement, bien que la variable de tableau soit répertoriée, j'obtiens toujours les tailles de trame par défaut de 227, 46 et 277, 110.
Re : JSL - Création d'une boucle pour un rapport de distribution personnaliséVoici votre script modifié pour placer toutes les distributions dans une seule fenêtre.Je ne comprends pas ce que vous entendez par "taille du cadre ajustée".Pourriez-vous clarifier cela, s'il vous plaît?Est-ce que vous voulez que tous les résultats soient réduits afin qu'ils tiennent tous dans votre écran d'affichage ?
// Crée une fenêtre d'affichage et y place les distributions
Nouvelle fenetre ( "Tous ensemble" ,
// disposer les distributions côte à côte
H Zone de liste (
/*Exécuter la matrice d'analytes*/
analyteArr = Tableau associatif ( : Analyte ) << Obtenez des clés ;
Pour ( chaque Analyte = 1 , chaque analyte <= N articles ( analyteArr ) , chaque analyte ++,
/*Répartition de la pente*/
Tableau de données actuel ( dtmain ) ;
dtmain << Distribution (
Recalcul automatique( 1 ) ,
EnvoyerVersParGroupe( { : Analyte == analyteArr[chaqueAnalyte]} ) ,
EnvoyerVersParGroupe(
{ : Analyte == analyteArr[chaqueAnalyte]} ,
Distribution continue( Colonne ( : Pente ) , Vertical( 0 ) )
) ,
Par( : Analyte ) ,
EnvoyerVersParGroupe(
{ : Analyte == analyteArr[chaqueAnalyte]} ,
EnvoyerVersRapport(
Expédition(
{ "Distributions Analyte=" || analyteArr[chaqueAnalyte] , "Pente" } ,
"Boîte de distribution des valeurs aberrantes" ,
FrameBox ,
{Taille du cadre( 550 , 50 )}
) ,
Expédition(
{ "Distributions Analyte=" || analyteArr[chaqueAnalyte] , "Pente" } ,
"Histogramme de distribution" ,
FrameBox ,
{Taille du cadre( 550 , 325 )}
)
)
)
) ;
) ;
)
) ;