Hola,
Tengo un script que muestra varias métricas medias (línea) en un generador de gráficos y también genera un grafito con métricas individuales (puntos).
[1] - Me gustaría quitar las etiquetas del grafito, y hasta ahora sin éxito.

En este ejemplo (script a continuación), me gustaría eliminar las etiquetas "Posición2 y Media()", manteniendo solo el gráfico (con sus propias anotaciones).
Según la guía de scripts, parece que se requiere un Gridlet (P 704), pero todos mis intentos fallaron.
[2] - cuando las líneas del primer gráfico están cerca una de la otra (:Speed y :Height en el ejemplo), el grafito tiende a desaparecer cuando muevo el mouse para intentar hacer clic en él para abrir el generador de gráficos con los datos individuales. ¿Existe una opción de "hacer clic" para abrirlo directamente en lugar de "Pasar el mouse sobre la línea y luego pasar el grafito y luego hacer clic"? (La guía de scripting P696 menciona la opción "Hacer clic", pero no está claro)
¿Podrías ayudarme con esto?
gracias de antemano
-Predicador
Vea a continuación mi última versión "estable"
Names Default To Here( 1 );
dt = Open( "$sample_data\Football.jmp" );
y_values = {"Height", "Weight", "Fat", "Speed"};
RelEventCol = "Position2";
variables_expr = Eval Expr( Variables( X( As Column( dt, Expr( RelEventCol ) ) ) ) );
Show( variables_expr );
For Each( {y_col}, y_values,
temp_expr = Expr( Y() );
Insert Into( temp_expr, Name Expr( As Column( dt, y_col ) ) );
Insert Into( temp_expr, Name Expr( Position( 1 ) ) );
Insert Into( variables_expr, Name Expr( temp_expr ) );
);
Show( variables_expr );
gb_expr = Expr(
Graph Builder( Show Control Panel( 0 ) )
);
temp_expr3 = Expr( Line() );
Insert Into( temp_expr3, Name Expr( X ) );
For Each( {y_col, idx}, y_values,
temp_expr2 = Expr( Y() );
Insert Into( temp_expr2, idx );
Insert Into( temp_expr3, Name Expr( temp_expr2 ) );
);
Show( temp_expr3 );
Insert Into( temp_expr3, Name Expr( Legend( 7 ) ) );
Show( temp_expr3 );
temp_expr4 = Expr( Elements() );
Insert Into( temp_expr4, Name Expr( temp_expr3 ) );
Show( temp_expr4 );
Insert Into( gb_expr, Name Expr( variables_expr ) );
Insert Into( gb_expr, Name Expr( temp_expr4 ) );
Insert Into(
gb_expr,
Name Expr(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
dt << Graph Builder(
Size( 800, 700 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, Expr( RelEventCol ) ) ), Y( Column( local:_measurements ) ) ),
Elements( X, Y )
);
),
Skip Filters( 1, Column( dt, Name Expr( RelEventCol ) ) )
)
}
)
)
);
Show( gb_expr );
Eval( gb_expr );Las etiquetas flotantes son probablemente lo que estás buscando https://www.jmp.com/support/help/en/18.1/index.shtml#page/jmp/hover-labels.shtml# . El propósito de Click es activarse cuando el usuario hace clic en la miniatura de la etiqueta flotante
Hace unas semanas descubrí cómo eliminar partes no deseadas de la etiqueta flotante. Aquí te dejo una forma de hacerlo.
Names Default To Here( 1 );
dt = Open( "$sample_data\Football.jmp" );
y_values = {"Height", "Weight", "Fat", "Speed"};
RelEventCol = "Position2";
variables_expr = Eval Expr( Variables( X( As Column( dt, Expr( RelEventCol ) ) ) ) );
Show( variables_expr );
For Each( {y_col}, y_values,
temp_expr = Expr( Y() );
Insert Into( temp_expr, Name Expr( As Column( dt, y_col ) ) );
Insert Into( temp_expr, Name Expr( Position( 1 ) ) );
Insert Into( variables_expr, Name Expr( temp_expr ) );
);
Show( variables_expr );
gb_expr = Expr(
Graph Builder( Show Control Panel( 0 ) )
);
temp_expr3 = Expr( Line() );
Insert Into( temp_expr3, Name Expr( X ) );
For Each( {y_col, idx}, y_values,
temp_expr2 = Expr( Y() );
Insert Into( temp_expr2, idx );
Insert Into( temp_expr3, Name Expr( temp_expr2 ) );
);
Show( temp_expr3 );
Insert Into( temp_expr3, Name Expr( Legend( 7 ) ) );
Show( temp_expr3 );
temp_expr4 = Expr( Elements() );
Insert Into( temp_expr4, Name Expr( temp_expr3 ) );
Show( temp_expr4 );
Insert Into( gb_expr, Name Expr( variables_expr ) );
Insert Into( gb_expr, Name Expr( temp_expr4 ) );
Insert Into(
gb_expr,
Name Expr(
Dispatch( {}, "Graph Builder", FrameBox,
{Set Graphlet(
Picture(
dt << Graph Builder(
Size( 800, 700 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, Expr( RelEventCol ) ) ), Y( Column( local:_measurements ) ) ),
Elements( X, Y )
);
),
Skip Filters( 1, Column( dt, Name Expr( RelEventCol ) ) )
), Set Gridlet(
Expunge(
{{Matcher( "Position2" )}, {Matcher( "Mean(Height)" )}, {Matcher( "Mean(Weight)" )}, {Matcher( "Mean(Fat)" )},
{Matcher( "Mean(Speed)" )}}
)
) //Removes these from the default gridlet
}
)
)
);
Show( gb_expr );
Eval( gb_expr );En lugar de la lista de valores "Media(...", probablemente se debería utilizar esto. Eliminará todo lo que tenga "Media" en el nombre.
{Matcher( Pat Regex( "Mean" ) )}
Gracias a todos por su ayuda.
Funciona bien:)
- Predicador