È possibile bloccare il limite inferiore della variabile di animazione?Ciao,
Trovo la funzione di animazione incredibilmente utile per scansionare rapidamente i miei dati.
Ho un set di dati di tre colonne, tempo, variabile 'X' e variabile 'Y'. Tracciare X contro Y e l'animazione nel corso del tempo è interessante ma sembra che io possa solo impostare l'ora di inizio e di fine e mantenga lo stesso intervallo di tempo fisso mentre procede nel tempo.
Quello che vorrei fare è avere la scansione del filtro tempo superiore associata da 0 al tempo X, ma mantenere il limite inferiore del filtro del tempo rimane a zero, il che essenzialmente mi darebbe un persistere infinito della X vs. Trama Y
Qualcuno sa se questo è possibile? Grazie!
Ri: È possibile bloccare il limite inferiore della variabile di animazione?La piattaforma Bubble Plot sembra essere in grado di eseguire ciò di cui ho bisogno, ma la sua velocità massima è molto lenta. I miei dati sono di esempio a 10 campioni / s e, idealmente, mi piacerebbe che l'animazione fosse eseguita 100 volte più velocemente.
Ri: È possibile bloccare il limite inferiore della variabile di animazione?Penso che il mio esempio possa aver fatto deragliare la mia domanda iniziale.
Ho appena scelto quattro istantanee in tempo per illustrare la progressione in quanto non so come salvare una GIF o il video dell'animazione che voglio generare.
Voglio creare un'animazione dei miei dati in cui il limite inferiore del filtro della variabile temporale rimane al valore minimo in quella colonna (tempo = 0) e avere il limite superiore 'animato' per passare dal tempo = 0 alla fine e al ciclo.
Ri: È possibile bloccare il limite inferiore della variabile di animazione?Un'altra opzione per un lavoro in giro. Aggiungi lo stesso filtro 4 volte usando l'opzione "Or" invece di "Aggiungi". L'immagine sotto mostra come sarà. Se vuoi solo determinati filtri, fai clic sull'hotspot rosso per il cursore di scelta e fai clic su "Cancella selezione"

Ri: È possibile bloccare il limite inferiore della variabile di animazione?Il modo rapido e sporco sarebbe quello di modificare il testo dello script del generatore di grafici direttamente con gli anni finali decrescenti ma con gli anni di inizio fissi. È possibile generare un intero gruppo di finestre del generatore di grafici direttamente sovrapposte e quindi chiuderle in sequenza con periodi di attesa appropriati per dare l'effetto desiderato.Ri: È possibile bloccare il limite inferiore della variabile di animazione?Ciao Jim,
Se date un'occhiata al dataset di esempio CO2.jmp.
Come un semplice esempio di ciò che sto cercando di fare sarebbe quello di tracciare "CO2" sull'asse y e "Mese" sull'asse x e avere l'animazione del Filtro dati locale per spazzare la colonna "Anno e Mese" ma mantenere il livello inferiore -bound statico mentre il upperbound è libero di muoversi e quindi ricomincia dall'inizio.
Di seguito sono quattro istantanee in tempo di come sarebbe.

Ri: È possibile bloccare il limite inferiore della variabile di animazione?Innanzitutto una spina senza vergogna per la mia richiesta di funzionalità: se le caselle di contesto del filtro dei dati nidificate potrebbero essere condizionate l'una dall'altra sarebbe facile.
Si spera che qualcuno conosca un modo più semplice, ma la mia soluzione alternativa per situazioni simili è quella di suddividere la tabella dei dati e creare il grafico utilizzando la tabella filtrata, in questo modo:

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 ) );
Ri: È possibile bloccare il limite inferiore della variabile di animazione?Potresti fornire un esempio dei dati e mostrare che stai cercando di impostare i valori? Sarebbe certamente utile per assicurarmi di capire la tua richiesta.
Ri: È possibile bloccare il limite inferiore della variabile di animazione?Ciao Jim,
Grazie per la risposta. Non sono sicuro di cosa intendi facendo clic con il tasto destro sull'asse e impostando il valore minimo.
Ho una trama di Y vs. X ma l'animazione che vorrei eseguire è su una terza variabile (tempo), quindi non esiste un asse, solo un filtro dati.
Ri: È possibile bloccare il limite inferiore della variabile di animazione?Se fai clic con il tasto destro del mouse sull'asse su cui vuoi fissare 0 e imposta il valore minimo dell'asse su 0, puoi utilizzare un filtro dati locale e il valore minimo rimarrà statico. Di seguito è riportato uno script di esempio che mostra un esempio
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 )} ) )
);