<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde,
J'ai un script dont l'une des sorties est un tracé bivarié (XY) utilisant la plate-forme bivariée. Il s'agit essentiellement de tracer la valeur d'un paramètre d'un appareil sur l'axe des y par rapport au temps sur l'axe des x. Ces parties ont une valeur d'ID commune dans une colonne de la table de données source.
Désormais, la plate-forme dispose déjà de la fonctionnalité selon laquelle si vous cliquez sur un marqueur, la ligne sur laquelle ce marqueur est basé est sélectionnée dans la table de données (les autres marqueurs de la zone d'affichage deviennent estompés). Ce que je veux, c'est que lorsqu'un utilisateur clique sur un marqueur, tous les autres marqueurs avec la même valeur d'ID soient également mis en surbrillance (afin que l'utilisateur puisse voir comment cet appareil s'est comporté au fil du temps). J'ai juste du mal à trouver un moyen de faire ça. Existe-t-il un accès au code de gestion des événements qui existe déjà pour la plateforme (c'est-à-dire ce qui permet de sélectionner les lignes lorsque l'utilisateur clique sur un marqueur, ou plusieurs lignes lorsque l'utilisateur clique et fait glisser un rectangle dans la fenêtre de tracé) ?
Toute aide à ce sujet serait grandement appréciée.
Merci.
Pour information, une autre approche utilisant le gestionnaire d'état de ligne :
Noms par défaut ici ( 1 ) ;
// Tableau
dt = Nouveau tableau ( "Sélection d'ID bivariée" ,
Ajouter des lignes ( dix ) ,
Nouvelle colonne ( "IDENTIFIANT" , Numérique , "Nominal" , Format ( "Meilleur" , 12 ) , Définir les valeurs ( [ 2014 , 2011 , 2012 , 2013 , 2014 , 2011 , 2013 , 2012 , 2011 , 2014 ] ) ) ,
Nouvelle colonne ( "X" , Numérique , "Continu" , Format ( "Meilleur" , 12 ) , Définir les valeurs ( [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , dix ] ) ) ,
Nouvelle colonne ( "Y" , Numérique , "Continu" , Format ( "Meilleur" , 12 ) , Définir les valeurs ( [ 20 , 21 , 25 , 28 , 30 , 31 , 33 , 36 , 37 , 40 ] ) ) ,
Définir les colonnes d'étiquettes ( : IDENTIFIANT )
) ;
// Fonction de gestionnaire d'état de ligne
selectMatchingID = Fonction ( { X } ,
// Récupère quelles lignes sont actuellement sélectionnées
Lignes sélectionnées = [] ;
je = 1 ;
Pour chaque ligne (
Si ( Choisi ( État de la ligne () ) ,
Lignes sélectionnées = V Concat ( Lignes sélectionnées , je )
) ;
je ++ ;
) ;
// S'il y a une sélection, "étendez-la" à toutes les lignes requises
Si ( N rangée ( Lignes sélectionnées ) > 0 ,
expandSelectedRows = [] ;
Pour ( je = 1 , je <= N rangée ( Lignes sélectionnées ) , je ++,
cetID = : IDENTIFIANT [ Lignes sélectionnées [ je ]] ;
lignes correspondantes = dt << getRowsOù ( : IDENTIFIANT == cetID ) ;
expandSelectedRows = V Concat ( expandSelectedRows , lignes correspondantes ) ;
) ;
dt << sélectionner des lignes ( expandSelectedRows ) ;
) ;
) ;
// Attribue le gestionnaire à la table
rsh = dt << MakeRowStateHandler ( selectMatchingID ) ;
// Essayez-le avec Graph Builder
dt << Générateur de graphiques (
Taille ( 530 , 454 ) ,
Afficher le panneau de configuration ( 0 ) ,
Variables ( X ( : X ) , Oui ( : Oui ) ) ,
Éléments ( Points ( X , Oui , Légende ( 5 ) ) , Plus lisse ( X , Oui , Légende ( 6 ) ) )
) ;
Salut tout le monde,
J'ai trouvé un moyen de le faire qui fonctionne. Fondamentalement, il vous suffit de créer un script graphique et d'y écrire du code qui obtient les ID des lignes sélectionnées, puis d'utiliser une instruction select Where pour faire correspondre toutes les lignes avec cet ID. Cela fonctionne également si vous cliquez et faites glisser un certain nombre de points dans la fenêtre Bivariée. Exemple de code ci-dessous.
xParam ="Column Name 1 Here";
yParam = "Column Name 2 Here";
idParam = "Column Name 3 Here";
//tableRef = data table reference
bivPlatform = Bivariate(
Y( Eval(yParam) ),
X( Eval(xParam) ),
);
bivReport = bivPlatform << Report;
bivFrame = bivRawReport[FrameBox( 1 )]; //Assign reference to framebox
// Add Graphics script to select all rows with matching ID when one row is selected on the graph
bivFrame << Add Graphics Script( 2, //Order graphics script is run with respect to other elements in Frame box (Not really needed here)
//Get selected IDs
selectedIDMatrix = tableRef:idParam[ ( tableRef << Get Selected Rows() ) ];
//Get unique IDs (optional I guess)
idArray = Associative Array(selectedIDMatrix);
uniqueIDMatrix = idArray << Get Keys;
//Select other datapoints with matching IDs
tableRef << Select Where( Contains( As List(uniqueIDMatrix), As Column(tableRef, idParam) ) );
);
Salut scwise,
Merci pour cela et j'ai hâte de disposer de cette fonctionnalité lors de la mise à niveau vers JMP 12.
Je cherchais en quelque sorte cette fonctionnalité uniquement dans la boîte d'affichage bivariée. Pour utiliser votre exemple ci-dessus, j'aimerais cliquer sur un point de données pour 2014 et mettre en surbrillance tous les points de 2014. J'espère qu'il existe une solution de script pur.
En tout cas merci encore pour votre réponse.
nkelleh,
Merci pour la question sur la possibilité de sélectionner quelque chose dans un graphique bivarié Ajuster X par Y, mais ensuite de voir tous les points correspondants dans le tableau de données mis en surbrillance qui ont des ID similaires au point sélectionné.Bien qu'il puisse encore exister une réponse plus élégante de type "script à partir de zéro" à ce que vous souhaitez faire, j'ai trouvé un moyen simple d'utiliser la nouvelle fonctionnalité JMP 12 Application Builder qui permet d'utiliser un graphique comme filtre de données.J'espère ensuite que vous pourrez utiliser des parties de ce script prêt à l'emploi dans votre travail actuel, ou peut-être simplement pouvoir utiliser cette fonctionnalité prête à l'emploi telle quelle.Notez que j'utilise la version JMP 12.1 pour Mac.
Dans ce cas, nous avons créé un tableau de données simple comme vous l'avez décrit avec trois colonnes : ID, X et Y, avec plusieurs ID ayant plusieurs lignes de mesures X et Y différentes. Nous avons ensuite combiné le datatable puis une distribution des colonnes dans une seule fenêtre (Combinez Windows dans JMP pour obtenir une vue de rapport personnalisé) ci-dessous afin que vous puissiez voir notre configuration initiale.

Ensuite, nous avons créé un graphique montrant l'ajustement bivarié de Y par X.À ce stade, si vous sélectionnez un point, vous sélectionnez en réalité uniquement en fonction des coordonnées X et Y.Faire apparaître l'étiquette d'identification de ce point ne pose aucun problème, mais cela ne fera qu'ombrer (sélectionner) ce point exact dans votre tableau de données.Le problème est donc que le Bivarié rechercherait des correspondances basées uniquement sur des coordonnées X et Y similaires, et non sur des identifiants communs.Voir la vue suivante du rapport personnalisé.
J'ai donc pensé que nous pourrions peut-être en faire un processus très simple en deux étapes en créant un graphique "d'aide" à côté du bivarié qui me permettrait ensuite de sélectionner tous les points d'intérêt d'identification en un seul clic.Pour ce faire, j'ai créé une distribution pour ID (que j'ai transformée en un type de colonne de données nominale pour une meilleure capacité de sélection), puis j'ai désactivé toutes les options d'affichage, à l'exception d'un tracé en mosaïque.Ensuite, rejoignez les graphiques de distribution et bivariés dans une seule fenêtre pour obtenir une autre vue de rapport personnalisé.Ensuite, sous le triangle rouge dans l'en-tête du rapport, nous avons sélectionné le bouton Modifier l'application qui affiche l'espace de travail Application Builder (après avoir sélectionné la table de données sous-jacente).Désormais, dans Application Builder, il suffit de sélectionner le premier graphique du tracé de mosaïque de distribution, de cliquer dessus avec le bouton droit et de sélectionner Utiliser comme filtre.Maintenant, je peux avoir une solution en deux clics... où je sélectionne d'abord le point sur le graphique Ajustement bivarié Y par X qui m'intéresse, puis je peux glisser et sélectionner (cliquez sur la direction) l'ID complet dans la mosaïque partiellement ombrée. cela mettra désormais en évidence tous les identifiants similaires sur la table de données.Il est également agréable de voir graphiquement sur le graphique Ajustement bivarié Y par X tous les points correspondant au même numéro d'identification après l'avoir sélectionné sur le tracé mosaïque.


Vous pouvez maintenant accéder au triangle rouge sous l'en-tête du rapport et enregistrer le script dans une fenêtre de script pour voir le travail de script sous-jacent généré pour vous lors de la création de cette vue.Encore une fois, même si ce n'est pas aussi simple que de pouvoir le faire directement à partir de Bivariate Fit Y By X, cela montre une solution prête à l'emploi et vous donne un moyen de générer automatiquement une partie des scripts.Sera joint à ce fichier de travail JMP avec des scripts enregistrés que vous pourrez également consulter.
J'espère que cela t'aides!