Viejas leyendas vuelven a aparecer cuando se usa el filtro de datos localesHola comunidad JSL!
Usé una variación de código para leyenda de gráfico dinámico , eso funciona muy bien al cambiar automáticamente la leyenda de un gráfico con solo 1 clic.
Sin embargo, cuando trató de incluir el filtro de datos locales en los gráficos, por alguna razón, el cuadro de borde de las leyendas anteriores / anteriores sigue apareciendo después de hacer clic en el filtro. he encontrado un discusión previa básicamente con el mismo problema, pero desafortunadamente esa tendencia de 2014 fue un monólogo, y cuando probé todos sus pasos de TS ninguno de ellos funcionó en mi caso.
La leyenda en sí es correcta (los datos muestran los colores y marcadores correctos), pero la ventana del informe simplemente se llena con todos los cuadros de borde anteriores.
Obtuve una solución alternativa, donde simplemente agregué un botón adicional para eliminar todas las "leyendas" innecesarias después de presionar el filtro de datos local, pero siguen apareciendo cada vez que presiono un filtro diferente. Tampoco tuve éxito al agregar el código para el botón "Eliminar" dentro del filtro de datos local (por lo que cada vez que uso la función de filtro, también eliminará todos los cuadros de leyenda innecesarios adicionales).
Me pregunto si hay una manera de eliminar la "memoria" almacenada de las leyendas anteriores en el gráfico. O cualquier solución que se pueda utilizar en este caso.
Gracias de antemano por la ayuda y el apoyo!
Gráfico antes de usar el filtro de datos local
Gráfico después de usar el filtro de datos local

Re: Las viejas leyendas vuelven a aparecer cuando se usa el filtro de datos locales¿Puede incluir un script que funcione en una de las tablas de datos JMP de muestra que muestre qué plataforma está utilizando y cómo se agrega la leyenda?
Re: Las viejas leyendas vuelven a aparecer cuando se usa el filtro de datos localesMuchas gracias por la respuesta. Por conveniencia voy a usar el código de este enviar y acabo de agregar la sección de filtro de datos locales del gráfico.
//Begin Script;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
variables = {"age", "sex"};
// Initial nlevels is the number of levels of 'age', as it is the first by-group used.
fitVar = "age";
nlevels=6;
// Creating the legend. For each selection, the previous spline fits are removed, then
// new ones are generated.
BC_legend = Panel Box( "Choose Legend",
legend = Radio Box(
{"age", "sex"},
fitVar = legend << Get Selected;
Match( fitVar,
"age",
(Summarize(vals = By( :age ), c=count );
For(ii = nlevels, ii >=1, ii--,
obj << (Curve[1] << Remove Fit );
);
report(obj)[BorderBox(2)] << Delete;
report(obj)[FrameBox(1)] << Row Legend("age", color(1), marker(1));
obj << Group By( :age ) << Fit Spline( 0.1, standardized );
nlevels = nItems(vals);
),
"sex",
(Summarize(vals = By( :sex ), c=count );
For(ii = nlevels, ii >=1, ii--,
obj << (Curve[1] << Remove Fit );
);
report(obj)[BorderBox(2)] << Delete;
report(obj)[FrameBox(1)] << Row Legend("sex", color(1), marker(1));
obj << Group By( :sex ) << Fit Spline( 0.1, standardized );
nlevels = nItems(vals); )
);
));
// Fitting the initial Bivariate fit with 'age' as the by-group, adding the legend
// to control the selections.
nw = New Window( "BigClassBivariate",
HListBox(
obj = dt << Bivariate(
Y( :weight ),
X( :height ),
Group By( :age ),
Fit Spline( 0.1, standardized ),
Local Data Filter(
Location( {0, 0} ),
Mode( Select( 0 ), Show( 1 ), Include( 1 ) ),
Add Filter(
columns( :age ),
Display( :age, Size( 204, 200 ), List Display )
)
),
SendToReport(
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 493, 354 ),Marker Size( 2 ), Marker Drawing Mode( "Normal" ), Row Legend(
dt:(fitVar),
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "Standard" ),
Continuous Scale( Cont ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
); ,
BC_legend
));
//End Script;
Re: Las viejas leyendas vuelven a aparecer cuando se usa el filtro de datos localesNo me di cuenta de que no subí las imágenes correctamente en mis publicaciones originales.
Gráfico antes de usar el filtro de datos local

Gráfico después de usar el filtro de datos local

Re: Las viejas leyendas vuelven a aparecer cuando se usa el filtro de datos localesEntonces, como ejemplo con el código anterior. Hago clic un par de veces entre "Edad" y "sexo" en la sección de selección de leyenda de la interfaz, luego uso el filtro local y las leyendas "antiguas" vuelven a aparecer.

Re: Las viejas leyendas vuelven a aparecer cuando se usa el filtro de datos localesPrimero, parece que este problema se resuelve con JMP 15. Afortunadamente, hay una solución fácil para las versiones anteriores.
Cuando eliminas la antigua leyenda usando:
report(obj)[BorderBox(2)] << Delete;
la parte de visualización de la leyenda se elimina, pero DisplayFrame todavía tiene un identificador para la leyenda antigua, y cuando agrega la nueva leyenda ahora hay dos. También puede ver esto incluso antes de tocar el filtro de datos, si guarda el script para el informe verá dos comandos RowLegend (). Las dos leyendas también reaparecerían si usa Redo Analysis en el informe, con o sin filtro de datos.
Para asegurarse de que la leyenda se elimine por completo y no solo la parte de visualización de la leyenda, puede reemplazar la casilla eliminar con:
report(obj)[OwnerBox(1)] << Remove;
Esto es equivalente a un clic derecho> Eliminar en la leyenda, que lo elimina correctamente.
¡Espero que ayude!
Re: Las viejas leyendas vuelven a aparecer cuando se usa el filtro de datos locales¡¡¡¡Eso funciono!!!! Fantástico muchas gracias !!!! ¡Mi código es hermoso ahora!