Dissocier les données du tracé de superposition de la table de données<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai fouillé dans le guide de script à la recherche d'un moyen de "casser" le lien entre les données affichées dans un tracé de superposition et sa table de données, mais je n'arrive pas à trouver comment procéder.La raison en est que je souhaite créer plusieurs OP avec différentes plages de données spécifiées par l'utilisateur.J'utilise un filtre de données pour sélectionner les plages de dates qui m'intéressent afin que les OP résultants puissent mettre à l'échelle automatiquement les données des axes x et y afin que je n'aie pas à spécifier ces paramètres car ils changent considérablement au cours de l'année.
Pour simplifier le problème, j'ai inclus ci-dessous un code simulé qui montre essentiellement ce que j'essaie d'accomplir : à savoir, créez 2 OP qui affichent les données des mois 1 à 3 ET 5 à 7 et faites dissocier chacun de ces OP. à partir des données d'origine de sorte que lorsque les données sélectionnées dans le filtre de données changent, les données affichées dans l'OP ne changent pas par rapport à ce qui était initialement spécifié.Toutes les suggestions sur la façon d'accomplir cela seraient grandement appréciées.
Effacer le journal();
dt = Ouvrir( "C:\Program Files\SAS\JMP\10\Samples\Data\Time Series\Raleigh Temps.JMP" );
sdate = 1 ;
edate = 3 ;
obj = dt << Filtre de données(
Effacement automatique ( 1 ),
Afficher la fenêtre ( 0 ),
Ajouter un filtre(
colonnes( :Nom( "Mois" ) ),
Où(
:Nom( "Mois" ) >= sdate & :Nom( "Mois" ) <=
dater
)
),
Mode( Afficher( 1 ), Inclure( 1 ) )
);
obj << Fermer;
Tracé de superposition(
X( :Nom( "Mois" ) ),
Y( :Nom( "Température" ) ),
Axes séparés( 1 ),
Connexion via manquante( 1 ),
Points de connexion( 1 ),
EnvoyerVersRapport(
Expédition(
{},
"101",
ScaleBox,
{Afficher la grille principale( 1 ), les étiquettes pivotées( "Automatique" )}
)
)
);
sdate = 5 ;
edate = 7 ;
obj = dt << Filtre de données(
Effacement automatique ( 1 ),
Afficher la fenêtre ( 0 ),
Ajouter un filtre(
colonnes( :Nom( "Mois" ) ),
Où(
:Nom( "Mois" ) >= sdate & :Nom( "Mois" ) <=
dater
)
),
Mode( Afficher( 1 ), Inclure( 1 ) )
);
obj << Fermer;
Tracé de superposition(
X( :Nom( "Mois" ) ),
Y( :Nom( "Température" ) ),
Axes séparés( 1 ),
Connexion via manquante( 1 ),
Points de connexion( 1 ),
EnvoyerVersRapport(
Expédition(
{},
"101",
ScaleBox,
{Afficher la grille principale( 1 ), les étiquettes pivotées( "Automatique" )}
)
)
);
Re : Dissocier les données du tracé de superposition de la table de donnéesSi vous êtes préoccupé par l'espace, vous pensez peut-être au panneau de configuration que Graph Builder affiche par défaut, mais vous pouvez le désactiver avec Afficher le panneau de configuration (0).
Et, si vous pouvez encoder vos conditions dans une colonne, vous pouvez utiliser les rôles Groupe X et Groupe Y pour créer un affichage assez compact.
Dans l'exemple ci-dessous, je crée une colonne indiquant la taille de l'entreprise pour encoder mes conditions.
dt = Ouvrir ( "$SAMPLE_DATA\Financial.jmp" ) ;
dt << Nouvelle colonne ( "Taille de l'entreprise" , Formule ( Si ( : Nom ( "#emp" ) < 10000 , "Petit" , "Grand" ) ) ) ;
dt << Générateur de graphiques (
Taille ( 638 , 770 ) ,
Afficher le panneau de configuration ( 0 ) ,
variables (
X ( : Nom ( « Actifs (millions $) » ) ) ,
Oui ( : Nom ( "Ventes (M$)" ) ) ,
Groupe X ( : Taille de l'entreprise ) ,
Groupe Y ( : Taper )
) ,
Éléments ( Points ( X , Oui , Légende ( 1 ) ) , Plus lisse ( X , Oui , Légende ( 2 ) ) )
) ;
Re : Dissocier les données du tracé de superposition de la table de donnéesMerci Jeff pour votre aide à ce sujet.J'ai apprécié la suggestion de Graph Builder.Cela ne fonctionnera probablement pas dans mon cas particulier car j'ai affaire à une matrice d'affichage graphique de 2 colonnes sur 6 lignes et la surcharge de Graph Builder prend trop de place.Cependant, il est bon de voir cet exemple pour les futurs graphiques qui ne sont pas aussi volumineux et dans lesquels il serait utile d'avoir des fonctionnalités interactives.
Re : Dissocier les données du tracé de superposition de la table de donnéesDans JMP 10, vous pouvez utiliser un filtre de données local qui vous permet de filtrer sans perturber la table de données d'origine.
Je suggérerais également d'utiliser Graph Builder au lieu de Overlay Plot.
Voici un exemple :
dt = Ouvrir ( "$SAMPLE_DATA\Séries temporelles\Raleigh Temps.JMP" ) ;
Nouvelle fenetre ( "Ma fenêtre" ,
Zone de liste V (
dt << Générateur de graphiques (
variables ( X ( : Nom ( "Mois année" ) ) , Oui ( : Température ) ) ,
Éléments ( Doubler ( X , Oui , Légende ( 4 ) , Ordre des lignes ( 0 ) , Statistique récapitulative ( "Moyenne" ) ) ) ,
Filtre de données locales (
Emplacement ( { 207 , 385 } ) ,
Ajouter un filtre ( Colonnes ( : Année ) , Où ( : Année >= 1980 & : Année <= 1982 ) ) ,
Mode ( Sélectionner ( 0 ) , Montrer ( 1 ) , Inclure ( 1 ) )
)
) ;
dt << Générateur de graphiques (
Taille ( 570 , 518 ) ,
variables ( X ( : Nom ( "Mois année" ) ) , Oui ( : Température ) ) ,
Éléments ( Doubler ( X , Oui , Légende ( 4 ) , Ordre des lignes ( 0 ) , Statistique récapitulative ( "Moyenne" ) ) ) ,
Filtre de données locales (
Emplacement ( { 207 , 385 } ) ,
Ajouter un filtre ( Colonnes ( : Année ) , Où ( : Année >= 1982 & : Année <= 1990 ) ) ,
Mode ( Sélectionner ( 0 ) , Montrer ( 1 ) , Inclure ( 1 ) )
)
) ;
)
) ;
Re : Dissocier les données du tracé de superposition de la table de donnéesOu en utilisant l'idée de la nouvelle fenêtre :
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
Nouvelle fenêtre( "Ma fenêtre",
Boîte de contour( "Ma boîte de contour",
Zone de liste V(
bas = 9 ;
salut = 11 ;
op1 = Tracé de superposition(
X( :Exécution ),
Y( :Oxy ),
Où( :Runtime >= lo & :Runtime <= hi )
);,
bas = 10 ;
salut = 12 ;
op2 = Tracé de superposition(
X( :Exécution ),
Y( :Oxy ),
Où( :Runtime >= lo & :Runtime <= hi )
);
)
)
);
Re : Dissocier les données du tracé de superposition de la table de donnéesVoici une possibilité en utilisant l'idée du journal.
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
bas = 9 ;
salut = 11 ;
op1 = Tracé de superposition(
X( :Exécution ),
Y( :Oxy ),
Où( :Runtime >= lo & :Runtime <= hi )
);
rapport(op1)<
jrn = journal courant();
bas = 10 ;
salut = 12 ;
op2 = Tracé de superposition(
X( :Exécution ),
Y( :Oxy ),
Où( :Runtime >= lo & :Runtime <= hi )
);
jrn << ajouter(rapport(op2));
Re : Dissocier les données du tracé de superposition de la table de donnéesMerci les gens pour les suggestions.Les deux sont des approches intéressantes du problème.Cependant, aucun des deux ne fonctionne pour mon application spécifique puisque je souhaite créer plusieurs OP dans une seule fenêtre VListBox (Désolé, je n'étais pas clair à ce sujet dans mon message d'origine).Je n'arrive pas à comprendre comment faire fonctionner l'une ou l'autre de vos approches pour le faire.Des idées?
Nouvelle fenetre(
Zone de liste V(
Op1 = Tracé de superposition(.....),
Op1 = Tracé de superposition(.....)
)
);
Re : Dissocier les données du tracé de superposition de la table de donnéesCet exemple peut fournir une perspective légèrement différente.
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
bas = 9 ;
salut = 11 ;
Tracé de superposition(
X( :Exécution ),
Y( :Oxy ),
Où( :Runtime >= lo & :Runtime <= hi )
);
bas = 10 ;
salut = 12 ;
Tracé de superposition(
X( :Exécution ),
Y( :Oxy ),
Où( :Runtime >= lo & :Runtime <= hi )
);
Re : Dissocier les données du tracé de superposition de la table de donnéesCorrigez-moi si je me trompe, mais je ne pense pas qu'il soit possible de rompre le lien entre une plateforme et la table de données. L'intrigue doit être déplacée hors de la plate-forme, par exemple vers un journal ou vers une nouvelle fenêtre.
Les deux méthodes sont utilisées dans cet exemple. Les deux tracés superposés filtrés sont tous deux envoyés au même journal ou à des fenêtres individuelles.
Effacer le journal () ;
dt = Ouvrir ( "$SAMPLE_DATA\Séries temporelles\Raleigh Temps.JMP" ) ;
// Expression de filtre de données
expr_filtre = Expr (
obj = dt << Filtre de données (
Effacement automatique ( 1 ) ,
Afficher la fenêtre ( 0 ) ,
Ajouter un filtre (
Colonnes ( : Nom ( "Mois" ) ) ,
Où ( : Nom ( "Mois" ) >= date & : Nom ( "Mois" ) <= dater )
) ,
Mode ( Montrer ( 1 ) , Inclure ( 1 ) )
) ;
obj << Fermer ;
) ;
// Tracé de superposition
recouvrir = Expr (
op = Tracé de superposition (
X ( : Nom ( "Mois" ) ) ,
Oui ( : Nom ( "Température" ) ) ,
Recalcul automatique ( 0 ) ,
Axes séparés ( 1 ) ,
Connexion via manquante ( 1 ) ,
Points de connexion ( 1 ) ,
Envoyer vers le rapport ( Expédition ( {} , "101" , ScaleBox , { Afficher la grille principale ( 1 ) , Étiquettes pivotées ( "Automatique" )} ) ) ,
invisible
)
) ;
// Premier tracé
date = 1 ; dater = 3 ; expr_filtre ; recouvrir ;
// Nouvelle fenetre...
nouveau = Nouvelle fenetre ( "Mois " || Carboniser ( date ) || "-" || Carboniser ( dater ) , Rapport ( op )[ 1 ] ) ;
// ou Journal
op << journal ;
// Deuxième tracé
date = 5 ; dater = 7 ; expr_filtre ; recouvrir ;
nouveau = Nouvelle fenetre ( "Mois " || Carboniser ( date ) || "-" || Carboniser ( dater ) , Rapport ( op )[ 1 ] ) ;
op << journal ;