J'ai résolu le problème via ce post.
En utilisant Column(listDT,set_groupby) dans for char(set_groupby).
Row Legend(
//group by this
Column(listDT,set_groupby),
Color( 1 ),
Color Theme( "JMP default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}Salut,
(REMARQUE sur le contexte : je travaille sur un modèle de graphique qui automatise la création de graphiques pour chaque étiquette (A, B, C, D et E) dans l'ensemble de données (voir le script ci-joint) puis de l'ajouter à la même fenêtre de sortie pour une exportation et un partage faciles. Ici, j'utilise un seul graphique pour l'étiquette "A" comme exemple pour prouver ce qui ne va pas avec mon script. )
J'ai eu un problème avec mon script JMP qui ne lisait pas la variable Group-by sélectionnée à partir de la sélection de l'utilisateur dans la fenêtre modale. Je souhaite que l'utilisateur sélectionne un nom de colonne "regrouper par" à partir des données qui pourraient être n'importe quelle variable de groupe et avoir une légende et un schéma de coloration comme dans l'exemple ci-dessous.
Dans le tableau de données JMP ci-joint, mes données de jouets ont la colonne générique "groupe". Mais, un utilisateur doit être en mesure de sélectionner n'importe quelle variable de caractère (telle que le site de fabricant, le lot, le processus, la formulation) dans le tableau et d'avoir la légende de groupe et le schéma de coloration.
Voici mon script JMP :
//sélectionnez les données dans la table de données d'origine Names Default To Here( 1 ); dt = table de données actuelle(); /* 28/02/2022 Modifier obtenir les noms de colonne en 1. obtenir la variable de l'axe des x 2. obtenir la variable de regroupement pour colorer les points - doit être une option aucune lorsqu'il n'y a pas de groupe - instruction logique plus tard si set_groupby est "none" ", alors non - Demandez également à l'utilisateur quel schéma de coloration doit être utilisé. Couleur automatique JMP (bleu et rouge) ou aucune (en cas de coloration manuelle par, par exemple, l'ID de lot) voir la source : https://www.jmp.com/support/help/zh-cn/15.2/index.shtml#page /jmp/get-column-names.shtml */ column_names = dt << Get Column Names( Numeric, character, String ); //À FAIRE : //names_for_groupby_select = //group by ne doit être qu'une variable de type caractère, donc groupby_col_names = dt << Get Column names(character, String); nw1 = Nouvelle fenêtre("Définir l'axe X et regrouper par variable", < 9, 5); // graphique générique (peut être un graphique de contrôle ou un graphique de processus) Oneway( SendToByGroup( {:Name("Label (y-axis)") == label_val}, Y( :Result ), X( char(set_xlabel) ), / /:Name("x axis") ), Connect Means( 1 ), Grand Mean( 0 ), SendToReport( Dispatch( {}, "Result", TextEditBox, {Set Text( label_val || units_formatted )} ), // taille de la police : Dispatch( {}, "2", ScaleBox, {Label Row( Set Font Size( font_size ) )} ), //truc graphique : Dispatch( {}, "Oneway Plot", FrameBox, {Frame Size( 1000 , 300 ), DispatchSeg( CustomStreamSeg( 6 ), {Line Color( "Gray" )} ), Row Legend( //group by this //:Name("Group"), //or just Group works too char(set_groupby ), // << doit être spécifié par l'utilisateur. //set_groupby, // À FAIRE : corrigez ce bug ! Color( 1 ), Color Theme( "JMP default" ), // À FAIRE : << doit être spécifié par l'utilisateur. Marqueur ( 0 ), Thème du marqueur ( " " ), Échelle continue ( 0 ), Échelle inversée ( 0 ), Lignes exclues ( 0 ) )} ) ) ) ); ); conteneur << Ajouter(contenu) );
Dans ce script JMP, la sélection de colonne sur l'axe des x fonctionne (voir l'exemple de fenêtre modale et le graphique résultant ci-dessous), j'ai donc supposé que la référence de variable groupée fonctionnera également également. Mais la sortie produit un graphique qui n'a pas de variable groupée ou de légende. Qu'est-ce que mon code ne fait pas correctement ici ?
Fenêtre modale :
Exemple de graphique de sortie JMP pour l'étiquette "A"
Tableau de donnéesGraphiqueAutreScriptles fenêtres