¿Es posible bloquear el límite inferior de la variable de animación?Hola,
La función de animación me parece increíblemente útil para escanear rápidamente mis datos.
Tengo un conjunto de datos de tres columnas, tiempo, variable 'X' y variable 'Y'. Trazar X vs. La Y y la ejecución de la animación a lo largo del tiempo son interesantes, pero parece que solo puedo establecer las horas de inicio y finalización y mantiene el mismo intervalo de tiempo fijo a medida que avanza en el tiempo.
Lo que me gustaría hacer es tener el escaneo de límite de filtro de tiempo superior de 0 a tiempo X, pero mantener el límite de filtro de tiempo inferior permanecer en cero, lo que esencialmente me dará una persistencia infinita de X vs. Y parcela.
¿Alguien sabe si esto es posible? ¡Gracias!
Re: ¿Es posible bloquear el límite inferior de la variable de animación?La plataforma Bubble Plot parece poder realizar lo que necesito, pero su velocidad máxima es muy lenta. Mis datos se muestran a 10 muestras / s, y lo ideal sería que la animación se ejecutara 100 veces más rápido.
Re: ¿Es posible bloquear el límite inferior de la variable de animación?Creo que mi ejemplo puede haber descarrilado mi pregunta inicial.
Simplemente elegí cuatro instantáneas a tiempo para ilustrar la progresión, ya que no sé cómo guardar un GIF o un video de la animación que quiero generar.
Quiero crear una animación de mis datos donde el límite inferior del filtro de la variable de tiempo se mantenga en el valor mínimo en esa columna (tiempo = 0) y tenga el límite superior 'animado' para pasar del tiempo = 0 al final y al bucle.
Re: ¿Es posible bloquear el límite inferior de la variable de animación?Otra opción para un trabajo alrededor. Agregue el mismo filtro 4 veces usando la opción "O" en lugar de "Agregar". La imagen de abajo muestra cómo se verá. Si solo quieres ciertos filtros, haz clic en la zona activa roja para el control deslizante de tu elección y haz clic en "Borrar selección"

Re: ¿Es posible bloquear el límite inferior de la variable de animación?La forma rápida y sucia sería alterar el texto del script del generador de gráficos directamente con años finales decrecientes pero años iniciales fijos. Podría generar un montón de ventanas de generador de gráficos que se superpongan directamente y luego cerrarlas secuencialmente con los períodos de espera adecuados para obtener el efecto deseado.Re: ¿Es posible bloquear el límite inferior de la variable de animación?Hola Jim,
Si echa un vistazo al conjunto de datos de muestra CO2.jmp.
Como un ejemplo simple de lo que estoy tratando de hacer sería trazar "CO2" en el eje y, y "Mes" en el eje x, y tener la animación de Filtro de datos locales para barrer la columna "Año y mes" pero mantener la posición más baja. estático, mientras que el límite superior es libre de moverse y luego volver al principio.
A continuación hay cuatro instantáneas en el tiempo de cómo se vería.

Re: ¿Es posible bloquear el límite inferior de la variable de animación?Primero, un enchufe descarado para mi propia solicitud de características: si los cuadros de contexto de filtros de datos anidados pudieran ser condicionales entre sí, esto sería fácil.
Ojalá alguien sepa de una forma más fácil, pero mi solución para situaciones similares es subcontratar la tabla de datos y construir el gráfico utilizando esa tabla filtrada, como esta:

Names default to here( 1 );
dt = Open( "$Sample_data/Time Series/Raleigh Temps.jmp" );
dtfltrd = .;
enddate_unused = Date dmy( 1, 1, 1990 );
UpdateGraph = function( {enddate},
//Close the subset data table
Try( dtfltrd << Close Window; );
//Make a subset table linked to the original table that is filtered based on the slider
dtfltrd = dt << Subset(
Private,
Rows( Loc( ( Column( dt, "Month/Year" ) << Get values) <= enddate ) ),
Link to original data table( 1 )
);
//Remove the existing graph
Try( (bb_graph << Child ) << Delete );
//add a new graph that only contains data in the subset data table
bb_graph << Append(
dtfltrd << Graph Builder(
Size( 553, 561 ),
Show Control Panel( 0 ),
Variables( X( :Temperature ), Y( :Predicted Temperature ) ),
Elements( Smoother( X, Y, Legend( 508 ) ), Points( X, Y, Legend( 509 ) ) ),
Local Data Filter(
Add Filter(
columns( :Name( "Month/Year" ) )
),
Animation( Animate Column( :Name( "Month/Year" ) ), Animate Rate( 4 ) )
)
)
);
//Update text box with the filtered date
tb_enddate << Set Text( Format( enddate, "yyyy-mm-dd" ) );
);
win = New Window( "Animation",
H List Box(
V List Box(
H Center Box( Text Box("Set Max Date:", Set Font Style( "bold" ) ) ),
H Center Box( tb_enddate = Text Box() ),
H Center Box( sb_enddate = Slider Box(
Col Min( Column( dt, "Month/Year" ) ),
Col Max( Column( dt, "Month/Year" ) ),
enddate_unused,
UpdateGraph(enddate_unused)
) ),
<< Margin( 10 )
),
bb_graph = Border Box()
)
);
//Put the first graph in the box
UpdateGraph( Date mdy( 1, 1, 1990 ) );
Re: ¿Es posible bloquear el límite inferior de la variable de animación?¿Podría proporcionar un ejemplo de los datos y la pantalla para la que está intentando establecer valores? Eso sin duda sería útil para asegurarse de que entiendo su solicitud.
Re: ¿Es posible bloquear el límite inferior de la variable de animación?Hola Jim,
Gracias por la respuesta. No estoy seguro de lo que quiere decir al hacer clic con el botón derecho en el eje y establecer el valor mínimo.
Tengo una trama de Y vs. X, pero la animación que me gustaría ejecutar está sobre una tercera variable (tiempo), por lo que no hay ningún eje, solo un filtro de datos.
Re: ¿Es posible bloquear el límite inferior de la variable de animación?Si hace clic con el botón derecho en el eje que desea fijar en 0 y establece el valor mínimo del eje en 0, puede usar un filtro de datos local y el valor mínimo permanecerá estático. A continuación se muestra una secuencia de comandos de ejemplo que muestra un ejemplo
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
Bivariate(
Y( :height ),
X( :weight ),
Automatic Recalc( 1 ),
Local Data Filter( Add Filter( columns( :age ), Display( :age, Size( 160, 90 ), List Display ) ) ),
SendToReport( Dispatch( {}, "2", ScaleBox, {Min( 0 )} ) )
);