Curseur de plage pour contrôler la plage des axes du graphiqueUne boucle génère plusieurs constructeurs de graphes sans nom particulier. Je voulais créer un curseur de plage pour me permettre de modifier la plage de l'axe X de TOUS les graphiques du journal (qui ont tous la même plage) mais je ne sais pas comment faire cela.
Re : Curseur de plage pour contrôler la plage de l'axe du graphiqueGénial! Et pour qu'il s'agisse d'un curseur de plage, j'ai procédé comme suit :
Noms par défaut ici ( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << type de modélisation( "continu" );
gb1 = dt << Générateur de graphiques (
Taille (528, 448),
Afficher le panneau de configuration (0),
Variables( X( :âge ), Y( :hauteur ) ),
Éléments (Points (X, Y, Légende ( 5 ) ) )
);
gb2 = dt << Générateur de graphiques (
Taille (528, 448),
Afficher le panneau de configuration (0),
Variables( X( :âge ), Y( :poids ) ),
Éléments( Points( X, Y, Légende( 5 ) ) )
);
slidervar = Rapport( gb1 )(axisbox( 1 )] << get min;
slidervar2 = Rapport( gb1 )(axisbox( 1 )] << get max;
Nouvelle fenêtre( "Exemple",
Boîte de panneau( "Boîte de curseur",
Zone de liste H (
rsb = Boîte de curseur de plage (
Rapport( gb1 )[axisbox( 1 )] << obtenir min, Rapport( gb1 )(axisbox( 1 )] << obtenir max, slidervar, slidervar2,
(
Rapport( gb1 )(axisbox( 1 )] << Min( slidervar );
Rapport( gb1 )(axisbox( 1 )] << Max( slidervar2 );
Rapport( gb2 )(axisbox( 1 )] << Min( slidervar );
Rapport( gb2 )(axisbox( 1 )] << Max( slidervar2 );
);
)
)
)
);
Et grâce à cela, j’ai pu faire ce dont j’avais besoin pour mon propre scénario ! Jim, merci beaucoup !
Re : Curseur de plage pour contrôler la plage de l'axe du graphiqueTu l'as eu.
Re : Curseur de plage pour contrôler la plage de l'axe du graphiqueD'accord, j'ai donc une fonction qui fait mes graphiques.
Vous dites de créer une liste vide comme graphslist = {};
Puis dans la fonction,
appelez le générateur de graphiques une variable comme a = table << Graph builder();
Puis insérez dans (graphslist, a);
C'est ce que tu veux dire?
Re : Curseur de plage pour contrôler la plage de l'axe du graphiquecapturez simplement le pointeur vers chaque objet d'affichage dans une liste, puis vous pourrez accéder à chacun d'eux en les référençant en parcourant la liste.
Re : Curseur de plage pour contrôler la plage de l'axe du graphiqueJim,
mais j'ai remarqué que vous avez nommé individuellement tous vos objets de création de graphiques.
Comme je le disais dans ma question, actuellement mon programme fonctionne en les créant en boucle afin qu'elles ne soient pas appelées noms de variables. Pour cette raison, je ne sais pas comment faire référence au rapport.
Re : Curseur de plage pour contrôler la plage de l'axe du graphiqueLe moyen le plus simple de procéder serait d'ouvrir un filtre de données global et de sélectionner la variable de l'axe X comme variable de filtre. Il mettra en place un curseur qui vous permettra de modifier la plage.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << modeling type( "continuous" );
gb1 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
gb2 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
dt << Data Filter(
Location( {780, 189} ),
Mode( Show( 1 ), Include( 1 ) ),
Add Filter( columns( :age ) )
);
Si vous souhaitez développer votre, vous pouvez configurer une Slider Box pour modifier les valeurs Min et Max, vous pouvez configurer quelque chose comme ceci :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << modeling type( "continuous" );
gb1 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
gb2 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
slidervar = Report( gb1 )[axisbox( 1 )] << get min;
slidervar2 = Report( gb1 )[axisbox( 1 )] << get max;
New Window( "Example",
Panel Box( "Slider Box",
H List Box(
sb = Slider Box(
Report( gb1 )[axisbox( 1 )] << get min,
Report( gb1 )[axisbox( 1 )] << get max,
slidervar,
Report( gb1 )[axisbox( 1 )] << Min( slidervar );
Report( gb2 )[axisbox( 1 )] << Min( slidervar );
),
sb2 = Slider Box(
Report( gb1 )[axisbox( 1 )] << get min,
Report( gb1 )[axisbox( 1 )] << get max,
slidervar2,
Report( gb1 )[axisbox( 1 )] << Max( slidervar2 );
Report( gb2 )[axisbox( 1 )] << Max( slidervar2 );
)
)
)
);
Vous pouvez également ajouter un script graphique à chacun des générateurs de graphiques, qui détecte les changements dans la plage et l'origine de l'AxisBox(1), puis lorsqu'un changement est détecté, copiez les paramètres AxisBox(1) du graphique où le changement est détecté, à chacun des autres graphiques. Évidemment, c'est plus complexe, mais cela présente l'avantage de ne pas avoir besoin d'une fenêtre séparée avec un curseur.