Existe-t-il un moyen d'afficher une ligne de référence X dynamique sur plusieurs tracés ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
J'utilise Graph Builder pour afficher :
- le nombre de défauts dans un lot lorsque les pièces sont traitées via un certain outil de fabrication TOP PLOT
- les changements d'état de l'équipement E10 que l'outil a subis au cours de la même période CENTER PLOT
- un moniteur de processus prélevé sur des substrats de test également traités au cours de la même période.PARCELLE DU BAS

La "date_mise à jour" est le seul facteur commun entre tous les ensembles de données, qui ont été collectés à partir de 3 bases de données différentes.
J'aimerais avoir la possibilité d'afficher une ligne de référence X pendant que je clique et maintiens la souris sur l'un des tracés. Au relâchement de la souris, il devrait disparaître.
La ligne de référence doit être affichée simultanément sur tous les tracés.
Un exemple de ce dont j'ai besoin est présenté ci-dessous :

Dans l'attente de voir quelles solutions créatives pourraient être proposées
- Philippe
Re : Existe-t-il un moyen d'afficher une ligne de référence X dynamique sur plusieurs tracés ?Merci Ian et Craig pour votre (vos) solution(s).
Cela fonctionne à merveille
Si vous êtes prêt à relever un autre défi, .....Je me demandais si les étiquettes activées pouvaient être affichées lorsque la ligne de référence est placée sur n'importe quel point d'un graphique.
Rappelez-vous qu'il n'y aura jamais de situation dans laquelle des points se produiront exactement au même emplacement de l'axe x dans mon application.
Dans mon cas, les étiquettes seraient des commentaires écrits de l'opérateur relatifs aux tests, à la fabrication ou à la surveillance des processus.
C'est plus "agréable à avoir" que nécessaire mais ce serait très bien
- Philippe
Re : Existe-t-il un moyen d'afficher une ligne de référence X dynamique sur plusieurs tracés ?En utilisant la méthode originale, votre code devrait mettre à jour 2 ET 3 lorsque 1 est manipulé (et ses permutations cycliques).
Mais avec l'approche '<
Noms par défaut ici ( 1 );
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" );
gb = dt << Générateur de graphiques (
Taille( 528 , 448 ),
Afficher le panneau de configuration ( 0 ),
Variables( X( Transformer Colonne( "Rangée" , Formule( Rangée () ) ) ), Y( :taille ), Y( :poids ), Y( :âge ) ),
);
::exx = 1 ;
gbfb3 = Rapport ( go )(FrameBox( 3 )] ;
gbfb3 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (
::exx = x;
fr << inval ;
);
Ligne V ( ::exx);
);
gbfb1 = Rapport ( go )(FrameBox( 1 )] ;
gbfb1 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (
::exx = x;
fr << inval ;
);
Ligne V ( ::exx);
);
gbfb2 = Rapport ( go )(FrameBox( 2 )] ;
gbfb2 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (
::exx = x;
fr << inval ;
);
Ligne V ( ::exx);
);
Re : Existe-t-il un moyen d'afficher une ligne de référence X dynamique sur plusieurs tracés ?Chaque cellule du tracé en treillis produit par Graph Builder est une « FrameBox() » distincte, et le défi consiste à mettre à jour chacune d'entre elles lorsqu'une seule est modifiée. Le code ci-dessus repose sur la suppression et la restauration répétées d'un script graphique pour chaque FrameBox(), ce qui est pour le moins maladroit.
Craige@jmp a eu la gentillesse de suggérer une meilleure solution : envoyez simplement à l'objet Graph Builder lui-même un message "<< inval", qui force toutes les FrameBox associées à se redessiner de manière appropriée :
Noms par défaut ici ( 1 );
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" );
gb = dt << Générateur de graphiques (
Taille( 528 , 448 ),
Afficher le panneau de configuration ( 0 ),
Variables( X( Transformer Colonne( "Rangée" , Formule( Rangée () ) ) ), Y( :hauteur ), Y( :poids ) )
);
::exx = 1 ;
gbfb1 = Rapport ( go )(FrameBox( 1 )] ;
gbfb1 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (
::exx = x;
fr << inval ; // assurez-vous que les autres graphiques sont mis à jour
);
Ligne V ( ::exx);
);
gbfb2 = Rapport ( go )(FrameBox( 2 )] ;
gbfb2 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (
::exx = x;
fr << inval ; // assurez-vous que les autres graphiques sont mis à jour
);
Ligne V ( ::exx);
);
Re : Existe-t-il un moyen d'afficher une ligne de référence X dynamique sur plusieurs tracés ?Salut Ian,
Merci de votre réponse rapide.
C'est exactement ce que je recherche mais j'en ai besoin pour travailler sur 3 parcelles
En utilisant l'ensemble de données "$SAMPLE_DATA/Big Class.jmp, j'ai ajouté un tracé pour :age mais malheureusement, lorsque j'essaie de le configurer pour qu'il fonctionne sur 3 tracés, je n'ai pas réussi à le faire fonctionner. Je peux faire fonctionner 2 sur 3 à tout moment.
Serait-il possible d'ajouter quelques commentaires au script pour expliquer quelle est la logique ? Mes excuses pour cet inconvénient.
Dans mon cas, il suffirait qu'en cliquant sur le tracé central (:weight), la ligne de référence soit tracée vers le haut et vers le bas couvrant toutes les parcelles.
Voici ce que j'ai fait :
Noms par défaut ici ( 1 ) ;
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" ) ;
go = dt << Générateur de graphiques (
Taille ( 528 , 448 ) ,
Afficher le panneau de configuration ( 0 ) ,
Variables ( X ( Transformer la colonne ( "Rangée" , Formule ( Rangée () ) ) ) , Oui ( : hauteur ) , Oui ( : poids ) , Oui ( : âge ) ) ,
) ;
:: exx = 1 ;
gbfb3 = Rapport ( go )[ Boîte de cadre ( 3 )] ;
gs3 = Expr (
gbfb3 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" ) ;
Taille du stylo ( 2 ) ;
Piege a souris ( :: exx = X ; gbfb1 << supprimerGraphicsScript ( 1 ) ; gs1 ) ;
Ligne V ( :: exx ) ;
) ;
) ;
gbfb1 = Rapport ( go )[ Boîte de cadre ( 1 )] ;
gs1 = Expr (
gbfb1 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" ) ;
Taille du stylo ( 2 ) ;
Piege a souris ( :: exx = X ; gbfb2 << supprimerGraphicsScript ( 1 ) ; gs2 ) ;
Ligne V ( :: exx ) ;
) ;
) ;
gbfb2 = Rapport ( go )[ Boîte de cadre ( 2 )] ;
gs2 = Expr (
gbfb2 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" ) ;
Taille du stylo ( 2 ) ;
Piege a souris ( :: exx = X ; gbfb3 << supprimerGraphicsScript ( 1 ) ; gs3 ) ;
Ligne V ( :: exx ) ;
) ;
) ;
gs1 ;
gs2 ;
gs3 ;
Le tracé résultant ressemble à ceci :

Quand je clique à l'intérieur du tracé "âge", tout se passe bien avec la Réf. Ligne se déplaçant avec la souris sur toutes les parcelles.
Cependant, lorsque je clique à l'intérieur du tracé "hauteur", ce qui suit se produit :
La ligne de référence passe par la « taille » et le « poids » mais pas par « l'âge ».

De même, lorsque je clique à l'intérieur du tracé « poids », ce qui suit se produit :
La ligne de référence passe par "poids" et "âge" mais pas par "taille".

Pourriez-vous s'il vous plaît jeter un oeil ?
Merci,
Philippe
Re : Existe-t-il un moyen d'afficher une ligne de référence X dynamique sur plusieurs tracés ?Vous pourriez probablement adapter cette approche à votre cas spécifique :
Noms par défaut ici ( 1 );
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" );
gb = dt << Générateur de graphiques (
Taille( 528 , 448 ),
Afficher le panneau de configuration ( 0 ),
Variables( X( Transformer Colonne( "Rangée" , Formule( Rangée () ) ) ), Y( :hauteur ), Y( :poids ) )
);
::exx = 1 ;
gbfb1 = Rapport (fr)[FrameBox( 1 )] ;
gs1 = Expr (
gbfb1 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (::exx = x; gbfb2 << supprimerGraphicsScript ( 1 ); gs2);
Ligne V (::exx);
);
);
gbfb2 = Rapport (fr)[FrameBox( 2 )] ;
gs2 = Expr (
gbfb2 << AjouterGraphicsScript (
Couleur du stylo ( "Rouge" );
Taille du stylo ( 2 );
Piege a souris (::exx = x; gbfb1 << supprimerGraphicsScript ( 1 ); gs1);
Ligne V (::exx);
);
);
gs1;
gs2;
Re : Existe-t-il un moyen d’afficher une ligne de référence X dynamique sur plusieurs tracés ?Les graphiques JMP peuvent-ils avoir cet effet ?
@jpol
-> oui, avec quelques ajustements au code JSL dans l'autre discussion : )