Re : Hover Labels : envoyer un filtre plus précis ?Guide de script > Graphes de script > Étiquettes de survol > Travailler avec le contexte d'exécution d'étiquette de survol est vraiment utile avec les hoverlabels
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:sex), Y(:age), Color(:name)),
Elements(Points(X, Y, Legend(19))),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Textlet(
Setup(
local:encodedWhere = XML Encode(local:_where);
Show(Namespace("local") << Get Contents());
),
Markup(
"
<B>Groupings</B>: {local:_groupings}
<B>Measurements</B>: {local:_measurements}
<B>Summary statistic</B>: {local:_summaryStatistic}
<B>Filter columns</B>: {local:_filters}
<B>Where clause</B>: {local:encodedWhere}
<B>Graph type</B>: {local:_displaySegName}
<B>Data table</B> {local:_dataTable}
<B>Drill depth</B>: {local:_drillDepth}
<B>First Row</B>: {local:_firstRow}
<B>Underlying Rows</B>: {local:_underlyingRows}
"
)
)}
)
)
);
Si vous exécutez cela et jetez un œil au journal, vous devriez pouvoir accéder à la valeur du nom
Namespace("local") << Get Contents() = {{"_filters", {:sex, :age}}, {"_mode", "Textlet"}, {"_where", ":sex == \!"F\!" & :age == 16"}, {"_age", 16}, {"_name", "MARION"}, {"_sex", "F"}, {"_groupings", {:sex, :age}}, {"_firstRow", 36}, {"_underlyingRows", 1}, {"_measurements", {}}, {"_displaySegName", "MarkerSeg"}, {"_dataTable", DataTable("Big Class")}, {"_summaryStatistic", ""}, {"_drillDepth", 1}, {"_xaxis", 0}, {"_yaxis", 0}, {"_customData", [=>]}, {"_localDataFilter", "Local Data Filter(
Close Outline(1),
Add Filter(columns(:sex, :age), Where(:sex == \!"F\!"), Where(:age == 16))
)"}, {"_whereExpr", :sex == "F" & :age == 16}, {"encodedWhere", ":sex == "F" & :age == 16"}};
mais je ne sais pas si vous pouvez (facilement) forcer le filtre de nom dans le graphique du traceur. Vous pouvez supprimer des filtres avec Ignorer le filtre mais aucune idée de les ajouter Guide de script > Graphes de script > Étiquettes de survol > Ajouter des graphiques ou des images aux étiquettes de survol à l'aide de graphlets . La solution de contournement de sous-ensemble est une option
La superposition vous permettrait de filtrer à ce niveau, mais ce n'est pas vraiment utile car vous ne pouvez pas survoler ce point unique...
Re : Hover Labels : envoyer un filtre plus précis ?Je veux dire:
une solution que je peux montrer à mes collègues qui ont une licence d'essai de 30 jours - pour les convaincre que Jmp est TELLEMENT utile et TELLEMENT facile.

Re : Hover Labels : envoyer un filtre plus précis ?Adaptation du code de Survolez le graphlet d'un autre tableau de données e#M55890 , je suppose que ce sera quelque chose comme le code ci-dessous - mais j'espère qu'il existe une version non-JSL (2 clics ?) disponible.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
mainGB = dt << Graph Builder( Variables( X( :sex ), Y( :age ), Color( :name ) ), Elements( Points( X, Y, Legend( 19 ) ) ) );
Report( mainGB )["Graph Builder", FrameBox( 1 )] << Set Graphlet(
Picture(
getGraphlet = Function( {row},
{gb},
gb = Graph Builder( Variables( Y( :height ) ), Elements( Points( Y, Legend( 6 ) ) ) );
gb << Local Data Filter( Close Outline( 1 ), Add Filter( columns( :name ), Where( :name == :name[row] ) ) );
gb;
);
If( local:_mode == "Click",
New Window( "Wafer Graphlet", getGraphlet( local:_firstRow ) );
Empty();
,
plt = Platform( local:_dataTable, gb = getGraphlet( local:_firstRow ) );
Picture Box( (gb << report)[Picture Box( 1 )] << Get Picture( 0.5 ) );
);
),
Skip Filters( 1 )
);Re : Hover Labels : envoyer un filtre plus précis ?@nascif_jmp ?
Hover Labels : envoyer un filtre plus précis ?Je veux générer un graphlet de survol à partir d'une autre table de données en suivant une recette fourni par @nascif_jmp .
Le problème auquel je suis confronté peut être reproduit avec une seule table de données.
L'exemple ci-dessous semble extrêmement ennuyeux - "pourquoi veut-il tracer un seul point ?!?"
... mais a du sens lorsque deux tableaux de données différents sont utilisés [tableau de données principal avec valeurs médianes, graphique de survol avec valeurs individuelles] : )
Lorsque vous survolez un point de données, je souhaite que le graphlet de survol soit limité aux données correspondant exactement au point de données unique.
mon problème : le point de données n'est pas entièrement décrit par les colonnes utilisées pour les axes x et y. Dans l'exemple.
[J'utilise le sexe et l'âge sur les axes menant à plusieurs points de données pour chaque sexe et âge.]
Survoler l'un des points de données limite simplement le graphlet de survol par sexe et âge, mais pas au point de données unique (que je pourrais obtenir via le nom, etc.).
Alors, comment obtenir une spécification plus précise du point de données au-delà de l'axe x/y - sans affecter le graphique principal ?
J'ai essayé d'utiliser Color ou Size, mais ces paramètres sont simplement ignorés par Hover Label Framework.
Existe-t-il un moyen de dire au Hover Label Framework de diriger un filtre de colonne supplémentaire vers le Hover Label - sans changer le graphique principal?
2 points au lieu d'un point unique [correspondant aux entrées dans l'étiquette de survol Grille : Marion , F 16]:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );<BR />dt << Graph Builder(
Variables( X( :sex ), Y( :age ), Color( :name ) ),
Elements( Points( X, Y, Legend( 19 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
Graph Builder(
Variables( Y( :height ) ),
Elements( Points( Y, Legend( 6 ) ) )
)
)
)}
)
)
)
Personnalisation de masseRe : Hover Labels : envoyer un filtre plus précis ?Bon.C'est encore mieux que ce que je t'ai envoyé.J'ai aussi appris quelque chose.Au fait, vous devez ajouter le nom de l'espace de noms avant les deux-points (:) ou supprimer les deux-points devant _name.Il s'agit d'une variable dans l'espace de noms local, pas d'une colonne.
local:_name
// or simply
_name
Re : Hover Labels : envoyer un filtre plus précis ?Bien plus facile que je ne le craignais...
Je viens d'apprendre un truc super cool de @Jasean :
restreindre le graphique de survol via " Où"
On peut alors commencer par @jthi les découvertes de :
https://community.jmp.com/t5/Discussions/Hover-Labels-send-a-more-precise-filter/mp/612705/highlight/true#M81282.
Il ne vous reste plus qu'à ajouter (modifier *)
Where( :name == local:_name )
ou
Where( :name == _name )
*) mais non Où( :nom == :_nom ) !
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Graph Builder(
Variables( X( :sex ), Y( :age ), Color( :name ) ),
Elements( Points( X, Y, Legend( 19 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
Graph Builder(
Variables( Y( :height ) ),
Elements( Points( Y, Legend( 6 ) ) ),
Where( :name == local:_name )
)
)
)}
)
)
);