Re: Etiquetas flotantes: ¿enviar un filtro más preciso?Guía de secuencias de comandos > Creación de secuencias de comandos de gráficos > Etiquetas flotantes > Trabajar con el contexto de ejecución de etiquetas flotantes es realmente útil con 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 ejecuta eso y echa un vistazo al registro, debería poder acceder al valor del nombre
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"}};
pero no estoy seguro de si puede (fácilmente) forzar el filtro de nombre en el gráfico del trazador. Puede eliminar filtros con Omitir filtro pero no tiene idea de cómo agregarlos Guía de secuencias de comandos > Creación de secuencias de comandos de gráficos > Etiquetas flotantes > Agregar gráficos o imágenes a etiquetas flotantes mediante Graphlets . La solución de subconjunto es una opción
La superposición le permitiría filtrar a ese nivel, pero eso no es realmente útil ya que no puede pasar el cursor sobre ese único punto...
Re: Etiquetas flotantes: ¿enviar un filtro más preciso?Quiero decir:
una solución que puedo mostrar a mis colegas que tienen una licencia de prueba de 30 días, para convencerlos de que Jmp es MUY útil y MUY fácil.

Re: Etiquetas flotantes: ¿enviar un filtro más preciso?Adaptando el código de Hover-graphlet-desde-otra-tabla-de-datos e#M55890 , supongo que será algo como el siguiente código, pero espero que haya una versión que no sea 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: Etiquetas flotantes: ¿enviar un filtro más preciso?@nascif_jmp ?
Hover Labels: ¿enviar un filtro más preciso?Quiero generar un gráfico flotante de otra tabla de datos siguiendo una receta proporcionó por @nascif_jmp .
El problema al que me enfrento se puede reproducir con una sola tabla de datos.
El siguiente ejemplo parece extremadamente aburrido: "¿¡Por qué quiere trazar un solo punto!?"
... pero tiene sentido cuando se usan dos tablas de datos diferentes [tabla de datos principal con valores medianos, gráfico flotante con valores individuales]:)
Al pasar el mouse sobre un punto de datos, quiero que el gráfico flotante se restrinja a los datos correspondientes exactamente al único punto de datos.
mi problema: el punto de datos no está completamente descrito por las columnas utilizadas para los ejes x e y. En el ejemplo.
[Utilizo el sexo y la edad en los ejes que conducen a varios puntos de datos para cada sexo y edad.]
Pasar el cursor sobre uno de los puntos de datos solo restringe el graflet flotante por sexo y edad, pero no al único punto de datos (que podría obtener a través del nombre, etc.).
Entonces, ¿cómo obtener una especificación más precisa del punto de datos más allá del eje x/y, sin afectar el gráfico principal?
Intenté usar Color o Tamaño, pero Hover Label Framework simplemente ignora esas configuraciones.
¿Hay alguna manera de decirle a Hover Label Framework que canalice un filtro de columna adicional a Hover Label, sin cambiar el gráfico principal?
2 puntos en lugar de un punto único [correspondiente a las entradas en la etiqueta flotante Rejilla: 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 ) ) )
)
)
)}
)
)
)
La personalización en masaRe: Etiquetas flotantes: ¿enviar un filtro más preciso?Lindo.Eso es incluso mejor que lo que te envié.Yo también aprendí algo.Por cierto, debe agregar el nombre del espacio de nombres antes de los dos puntos (:) o quitar los dos puntos delante de _name.Es una variable en el espacio de nombres local, no una columna.
local:_name
// or simply
_name
Re: Etiquetas flotantes: ¿enviar un filtro más preciso?Mucho más fácil de lo que temía...
Acabo de aprender un truco genial de @Jasean :
restrinja el gráfico flotante a través de " Dónde"
Entonces se puede empezar con @jthi hallazgos de:
https://community.jmp.com/t5/Discussions/Hover-Labels-send-a-more-precise-filter/mp/612705/highlight/true#M81282.
Todo lo que tienes que hacer es agregar (editar *)
Where( :name == local:_name )
o
Where( :name == _name )
*) pero no Donde( :nombre == :_nombre ) !
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 )
)
)
)}
)
)
);