<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Graph Builder fonctionne avec succès avec le filtre de données en ajustant correctement les points tracés lorsque le curseur du filtre de données est déplacé. De plus, les valeurs des statistiques utilisant la zone de légende s'ajustent avec le curseur Filtre de données comme prévu. Jusqu'ici, tout va bien. Ensuite, j'ai voulu tracer la moyenne d'une colonne en utilisant « Personnaliser » et « Fonction Y ». Voici le script extrait :
Ajouter un script graphique (
3,
Description( "Script" ),
Fonction Y (Col Mean ( :_columnexample_ ), x )
)
La ligne moyenne souhaitée est tracée avec succès. Cependant, la ligne tracée ne répond pas au curseur Filtre de données.
Comment puis-je tracer la moyenne des colonnes qui fonctionne avec le filtre de données ?
Merci Ian d'avoir répondu. J'ai étudié votre script et je vois qu'il fonctionne. Dans mon cas, cependant, je dois conserver le filtre de données global afin que de nombreux graphiques puissent être affectés en même temps, et je n'y suis pas encore parvenu.
En nous appuyant sur la pensée de Jim, voici une méthode (avec le filtre de données local) :
NomsDefaultToHere ( 1 ) ;
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" ) ;
// Générateur de graphiques
go = dt << Générateur de graphiques (
Afficher le panneau de configuration ( 0 ) ,
Verrouiller les balances ( 1 ) ,
Variables ( X ( : poids ) , Oui ( : hauteur ) ) ,
Éléments ( Points ( X , Oui , Légende ( 6 ) ) , Ligne d'ajustement ( X , Oui , Légende ( 8 ) ) ) ,
) ;
// Récupère une référence au rapport
gbRapport = go << Rapport ;
// Ajouter un filtre de données local
ldf = go << Filtre de données locales ( Ajouter un filtre ( Colonnes ( : sexe ) ) ) ;
// Fonction de gestionnaire d'état de ligne qui ajoute une ligne horizontale à Graph Builder à la moyenne du courant
// sélection dans le filtre de données local
ajouterMeanYLine =
Fonction ({ X } , { Local par défaut } ,
// Récupère les lignes correspondant à la sélection courante
Lignes = ldf << getFilteredRows ;
// Obtenez la valeur moyenne requise
mv = Signifier (( Colonne ( dt , "hauteur" ) << obtenir des valeurs )[ Lignes ]) ;
// Ajoute le script graphique à la zone d'affichage de Graph Builder. . .
gFrames = gbRapport << XPath ( "//FrameBox" ) ;
// Essayez de supprimer un script graphique qui pourrait déjà être là
Essayer ( Envoyer ( gFrames [ 1 ] , SupprimerGraphicsScript ( 1 ))) ;
// Expression qui ajoutera le script graphique requis
ags = Expr ( Envoyer ( gFrames [ 1 ] , AjouterGraphicsScript ( Couleur du stylo ( "Rouge" ) ; Ligne H ( À déterminer )))) ;
// 'Bake in' valeur moyenne actuelle
RemplacerDans ( ags , Expr ( À déterminer ) , mv ) ;
// Ajout du script graphique
ags ;
) ;
// Attribue le gestionnaire d'état de ligne à la boîte d'affichage du filtre de données local
rsh = gbRapport [ Boîte de contour ( 1 )] << MakeRowStateHandler ( ajouterMeanYLine ) ;
Merci pour la réponse.
Voici le script du filtre de données, il n'est pas local :
Table de données actuelle() << Filtre de données (
Emplacement ({325, 212} ),
Mode( Afficher( 1 ), Inclure( 1 ) ),
Ajouter un filtre (colonnes ( :Bandmeter ), Où ( :Bandmeter >= -100 & :Bandmeter <= -50 ) )
);?
Je suppose que le problème réside dans l'instruction Include(1), elle devrait peut-être être Exclude. Mon essai gratuit de 30 jours vient de se terminer, je vais donc devoir attendre d'obtenir une licence pour le tester.
Certaines valeurs initiales arbitraires du filtre sont incluses simplement parce que je n'ai pas encore compris comment inclure toutes les lignes de la table de données actuelle. Cela semble être un problème moindre pour le moment, mais je suppose également que ce n'est pas la cause de la difficulté d'utilisation du filtre de données avec la fonction Y.
La solution dépendra probablement de si vous utilisez un filtre de données ou un filtre de données local.Si vous utilisez un filtre de données, vous pouvez appliquer un gestionnaire d'état de ligne à la table de données, qui redessinera la fonction Y.S'il s'agit d'un filtre de données local, la clé sera de trouver ce qui est modifié dans le graphique par le filtre sur lequel on peut déclencher, pour redessiner la fonction Y.
Si vous pouvez fournir plus de détails sur le filtre de données que vous utilisez, je pourrai peut-être vous proposer une solution plus approfondie.