Passer la souris sur le point de données pour afficher l'image ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Est-ce que quelqu'un sait si c'est possible?Passez la souris sur un point de données, comme un graphique, et faites apparaître une image JPG/GIF dans une fenêtre ou une sorte de boîte d'affichage ?
Je connais et j'utilise <Re : Passer la souris sur le point de données pour afficher l'image ?
Dans JMP 15.0, nous avons ajouté une fonctionnalité appelée graphlets qui offre (entre autres) la possibilité d'afficher des images à la demande dans des étiquettes de survol. L'image affichée et ce qui se passe lorsque vous cliquez dessus sont entièrement sous le contrôle de l'utilisateur. Vous pouvez facilement récupérer une image à partir d'une colonne, d'un fichier ou d'une URL construite dynamiquement en fonction du contexte du graphe (par exemple les valeurs X et Y de votre graphe). Il n'est pas nécessaire de stocker des images dans la table (bien que cela soit également pris en charge).
Vous pouvez voir cette fonctionnalité en action dans l'échange de fichiers suivant
https://community.jmp.com/t5/JMP-Scripts/WikiReader-Augmenting-Hover-Labels-with-web-data-and-images/ta-p/237488
Pour plus d'informations sur les graphlets, consultez https://www.jmp.com/content/dam/jmp/documents/en/support/jmp15/using-jmp.pdf , page 512.
Re : Passer la souris sur le point de données pour afficher l'image ?THX
Re : Passer la souris sur le point de données pour afficher l'image ?Oui, le script ci-dessus tire parti des colonnes Expression, qui, je crois, n'ont pas été introduites avant JMP 12.
Re : Passer la souris sur le point de données pour afficher l'image ?Salut, j'ai essayé d'exécuter ce script, mais j'obtiens une erreur sur " Tableau 1 : photo [ 1 ] = p ; " indiquant que le type de colonne ne correspond pas. Est ce parce que j'utilise JMP 10 ?
Re : Passer la souris sur le point de données pour afficher l'image ?Merci encore. Maintenant, tout fonctionne comme un charme !
Re : Passer la souris sur le point de données pour afficher l'image ?Voir le message Souricière et Boîte Cadre Biviarial pour quand j'ai eu exactement la même question.
Re : Passer la souris sur le point de données pour afficher l'image ?Merci! C'était exactement ce dont j'avais besoin. C'est incroyable ce que jmp peut faire.
Cependant, bien que l'image de la puce s'affiche maintenant si je clique dessus, je me demande pourquoi le point de données (puce) sur la carte n'est plus marqué/sélectionné. Mais encore une fois ce n'est pas vraiment nécessaire...
Merci!
Re : Passer la souris sur le point de données pour afficher l'image ?MouseTrap doit être appliqué à une boîte de cadre.Le générateur de graphiques est un affichage assez complexe qui comprend une boîte de cadre.
la fenêtre = Nouvelle fenetre ( "Carte des plaquettes" ,
Go = Tableau de données ( "Carte de plaquette de table de données" ) << Générateur de graphiques (
variables ( X ( : PosX ) , Oui ( : PosY ) , Couleur ( : Évaluer ) ) ,
Éléments ( Points ( X , Oui , Légende ( 9 ) ) ) ,
) ;
) ;
RVB = Go << Signaler ;
RVB [ boîte de cadre ( 1 )] << Ajouter un script graphique ( Piege a souris ( imprimer ( "test" ))) ;
Re : Passer la souris sur le point de données pour afficher l'image ?Merci Ian et msharp. Je vais essayer plusieurs façons et voir quelles solutions fonctionnent le mieux pour nous. La fonction MouseTrap () est certainement utile, mais je vais également essayer de masquer la colonne d'image et de vérifier si nous sommes réellement limités par la vitesse ou la mémoire.
EDIT : J'ai des difficultés à ajouter la fonction MouseTrap() au Graph Builder. Je cherchais une solution comme celle-ci:
exx = 20 ;
exy = 50 ;
window = Nouvelle fenêtre( "Carte des plaquettes",
gb = Data Table("Data Table Wafer Map") << Graph Builder(
Variables( X( :PosX ), Y( :PosY ), Couleur( :Valeur ) ),
Éléments( Points( X, Y, Légende( 9 ) ) ),
Piege a souris(
exx = X( :PosX );
exy = Y( :PosY );
Afficher(exx);
,
Afficher(exy);
)
);
);
Franchement, je ne faisais que deviner en insérant la fonction MouseTrap(), mais je n'ai trouvé aucune information concernant l'utilisation combinée de Graph Builder et de MouseTrap.
Est-il possible d'utiliser la fonction MouseTrap() avec Graph Builder ?
Re : Passer la souris sur le point de données pour afficher l'image ?Je crois que la réponse courte est non. Il n'y a pas beaucoup de capacités HOVER lors de l'interaction avec les graphiques.
Si l'utilisateur "clique" sur le point, il existe plusieurs options jusqu'à mousetrap() qui interagit avec les clics, les glissements, etc. de l'utilisateur dans une graphbox.Vous pouvez également utiliser un gestionnaire d'état de ligne qui exécutera des scripts lorsque les utilisateurs interagissent avec une table de données. Par exemple, la sélection d'un point dans un graphique sélectionnera également la ligne de la table de données, que votre gestionnaire pourra ensuite utiliser pour exécuter un script.Ils ont tous les deux leurs avantages et leurs inconvénients.
Quoi qu'il en soit, si les souvenirs sont le seul problème, vous devriez envisager la solution de Ian consistant simplement à masquer la table de données et/ou la colonne.Si vous êtes préoccupé par la vitesse, c'est-à-dire. le temps qu'il faut pour générer une image/charger un fichier image dans chaque cellule, je recommanderais simplement de condenser le tableau de données.Vos utilisateurs ont-ils BESOIN de voir les images du grand tableau ?Pouvez-vous créer des sous-ensembles de données pour créer des ensembles de données plus petits avec lesquels les utilisateurs peuvent ensuite interagir ?
Re : Passer la souris sur le point de données pour afficher l'image ?Bien que je n'aie pas vérifié, j'imagine que les cellules "vides" dans une colonne d'expression n'ont presque pas de surcharge. Et vous pouvez masquer cette colonne ou rendre le tableau invisible si nécessaire.
Mais si vous n'aimez pas cette approche, regardez 'MouseTrap()' et 'IsCommandKey()' dans Help > Scripting Index
Re : Passer la souris sur le point de données pour afficher l'image ?Salut,
cet exemple fonctionne bien pour moi, mais je suis intéressé par une solution différente. Le problème est que je n'aime pas remplir chaque ligne avec une image, car cela consommerait beaucoup de mémoire dans une grande table de données. Compte tenu de cela, ma question est la suivante: s'il est possible d'exécuter du code dans une colonne d'expression, lorsque la souris survole un point de données? Ensuite, la position X et Y de ce point pourrait être utilisée comme argument dans la colonne d'expression pour ouvrir l'image appropriée.
Est-ce possible?
Merci beaucoup!
Re : Passer la souris sur le point de données pour afficher l'image ?Oui c'est possible. Le moyen le plus simple consiste simplement à ajouter une colonne d'images et à attribuer à cette colonne une propriété d'étiquette.Voir ci-dessous pour un exemple.
Names Default to Here(1);table1 = New Table( "one", Add Rows( 1 ), New Column( "pic", Expression, Set Values( {Empty()} ) ));// make random imaged = J(25,50,rgbcolor(randomuniform(),randomuniform(),randomuniform()));p = newimage(d);// store in table1table1:pic[1] = p;// make a new tabletable2 = New Table( "two", Add Rows( 1 ), New Column( "pic", Expression, Set Values( {Empty()} ) ));// put two copies in table 2, from table 1table2:pic[1] = table1:pic[1];table2<table2:pic[2] = table1:pic[1];//Add X/Y columnstable2 << New Column("X", Numeric, Continous, Set Values({1,2}));table2 << New Column("Y", Numeric, Continous, Set Values({2,1}));//label pic columntable2:pic << Label;//open bivariate analysisbiv = table2 << Bivariate( Y( :Y ), X( :X ) );Le script ci-dessous a été adapté du code de Craige Re : JMP_12 : Intégration d'une expression JSL directement dans une ligne si vous vous demandez ce qu'il fait d'autre.