Bonjour,
Parfois, le jeu de données peut contenir des points qui se chevauchent. La grille de survol de la souris par défaut affiche le nombre de points qui se chevauchent (N) et d'autres informations (voir l'exemple d'image ci-dessous à partir du jeu de données big class.jmp).

Je souhaite que ces informations soient également utilisées dans un script textlet ou graphet. Comment répertorier les lignes survolées ? Je peux utiliser la syntaxe suivante pour les lignes sélectionnées, mais bon, le survol ne fait pas de sélection. Et pour autant que je sache, il n'y a pas de fonction "Get hovered rows". Aucune suggestion?
selected_rows = as list(dt << get selected rows);
La suite renvoie la première ligne des lignes superposées. Comment puis-je faire référence à des points de données sous-jacents, par exemple dans des boucles For ?
:height[local:_firstRow]
Suivre, dans le cadre du textlet, renvoie le nombre de lignes sous-jacentes, mais pour autant que je sache, ne renvoie pas les lignes, par exemple sous forme de liste.
<B>Underlying Rows</B>: {local:_underlyingRows}J'ai essayé de lire attentivement le chapitre suivant mais je ne trouve pas de solution à ma question :
Guide de script > Graphes de script > Étiquettes de survol > Travailler avec le contexte d'exécution d'étiquette de survol
Jusqu'à présent, j'ai surmonté ce problème en utilisant la gigue pour éviter les points qui se chevauchent, mais je suis sûr qu'il existe un meilleur moyen de le faire. Merci pour vos conseils !
Jeanne
Salut Jarmo,
Merci pour votre suggestion de lire la documentation plus attentivement et votre exemple rapide. Grâce à cette aide, j'ai mieux compris comment Le survol des variables de contexte d'exécution des étiquettes fonctionne (en particulier _where). J'ai pu intégrer ce concept à mon application. Merci encore,
Jeanne
Exemple très rapide ici :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:height), Y(:weight)),
Elements(Points(X, Y, Legend(1))),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Set Textlet(
Setup(
expr = Parse(local:_where);
local:r = local:_dataTable << Get Rows Where(expr)
),
Markup("{local:r} rows")
)
)
)
);

(J'ai cliqué sur le point pour les mettre en évidence dans le tableau de données)
Si je me souviens bien, l'aide de JMP contenait une assez bonne documentation sur les étiquettes de survol et leur contexte d'exécution : Travailler avec le contexte d'exécution d'étiquette de survol (jmp.com) . Vous devrez peut-être utiliser les informations que vous pouvez obtenir pour effectuer une requête sur la table de données afin d'obtenir toutes les lignes.