Possible de verrouiller la limite inférieure de la variable d'animation?Bonjour,
Je trouve la fonction d’animation extrêmement utile pour parcourir rapidement mes données.
J'ai un ensemble de données de trois colonnes, heure, variable 'X' et variable 'Y'. Tracer X contre Y et l'exécution de l'animation dans le temps présentent un intérêt, mais il semble que je ne peux que définir les heures de début et de fin et qu'il conserve le même intervalle de temps fixe à mesure qu'il avance dans le temps.
Ce que je voudrais faire, c’est que le filtre lié à la limite supérieure du temps passe de 0 à X, mais que la limite du filtre inférieur reste à zéro, ce qui me donnerait essentiellement une persistance infinie du X vs. Y parcelle.
Est-ce que quelqu'un sait si c'est possible? Merci!
Re: Possible de verrouiller la limite inférieure de la variable d'animation?La plate-forme Bubble Plot semble être capable de réaliser ce dont j'ai besoin, mais sa vitesse maximale est très lente. Mes données sont échantillonnées à 10 échantillons / s et, idéalement, j'aimerais que l'animation s'exécute 100 fois plus vite.
Re: Possible de verrouiller la limite inférieure de la variable d'animation?Je pense que mon exemple a peut-être fait dérailler ma première question.
J'ai simplement choisi quatre instantanés à temps pour illustrer la progression, car je ne sais pas comment enregistrer un fichier GIF ou une vidéo de l'animation que je veux générer.
Je souhaite créer une animation de mes données dans laquelle la limite inférieure de la variable temporelle reste la valeur minimale de cette colonne (time = 0) et la limite supérieure "animée" pour passer de time = 0 à end and loop.
Re: Possible de verrouiller la limite inférieure de la variable d'animation?Une autre option pour contourner le problème. Ajoutez le même filtre 4 fois en utilisant l'option "Ou" au lieu de "Ajouter". L'image ci-dessous montre à quoi elle ressemblera. Si vous ne voulez que certains filtres, cliquez sur le point rouge pour le curseur de votre choix et cliquez sur "Effacer la sélection"

Re: Possible de verrouiller la limite inférieure de la variable d'animation?Le moyen le plus simple et le plus rapide serait de modifier le texte du script du générateur de graphes directement avec des années finales décroissantes mais des années de début fixes. Vous pouvez générer un grand nombre de fenêtres de générateur de graphes qui se chevauchent directement, puis les fermer séquentiellement avec des périodes d'attente appropriées pour obtenir l'effet souhaité.Re: Possible de verrouiller la limite inférieure de la variable d'animation?Salut Jim,
Si vous jetez un coup d'œil à l'exemple de jeu de données CO2.jmp.
Un exemple simple de ce que j'essaie de faire serait de tracer "CO2" sur l'axe des y et "Mois" sur l'axe des x et de faire en sorte que l'animation du filtre de données local balaye la colonne "Année et mois" tout en conservant la valeur inférieure. -bound statique pendant que le upperbound est libre de se déplacer puis de revenir au début.
Vous trouverez ci-dessous quatre instantanés indiquant à quoi cela ressemblerait.

Re: Possible de verrouiller la limite inférieure de la variable d'animation?Tout d’abord un plug éhonté pour ma propre demande de fonctionnalité: si les boîtes de contexte de filtre de données imbriquées pouvaient être conditionnelles, ce serait facile.
J'espère que quelqu'un connaît un moyen plus simple, mais ma solution pour des situations similaires consiste à sous-définir le tableau de données et à créer le graphique à l'aide de ce tableau filtré, comme suit:

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: Possible de verrouiller la limite inférieure de la variable d'animation?Pourriez-vous donner un exemple des données et l’affichage pour lesquels vous essayez de définir des valeurs? Cela serait certainement utile pour que je comprenne bien votre demande.
Re: Possible de verrouiller la limite inférieure de la variable d'animation?Salut Jim,
Merci pour la réponse. Je ne suis pas sûr de comprendre ce que vous entendez par un clic droit sur l'axe et en définissant la valeur minimale.
J'ai un complot de Y contre X mais l'animation que je voudrais lancer dépasse une troisième variable (heure), il n'y a donc pas d'axe, mais un filtre de données.
Re: Possible de verrouiller la limite inférieure de la variable d'animation?Si vous cliquez avec le bouton droit de la souris sur l’axe que vous souhaitez fixer à 0 et définissez la valeur minimale de l’axe sur 0, vous pouvez alors utiliser un filtre de données local et la valeur minimale restera statique. Ci-dessous un exemple de script montrant un exemple
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 )} ) )
);