<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
J'essaie de tracer trois cartes de contrôle (IR, EWMA et CUSUM), mais pour une raison étrange, les fenêtres de carte affichent un espace vide. Lorsque vous avez essayé d'utiliser l'interface JMP, vous avez parfaitement tracé les graphiques.
Un fait intéressant est que le même graphique est rempli lors de la 3ème étape mentionnée ci-dessous en cas de première exécution pour générer des limites mais pas lorsque requis avec des limites, même les limites actuellement appliquées sont calculées à partir du même tableau.
Voici comment fonctionne mon flux de code:
- > Obtenir des fichiers d'entrée
-> Rejoignez-les pour créer la table principale
-> Calculer les limites et stocker dans un autre tableau pour tous les paramètres de processus. (Pour la première exécution, les limites seront calculées à partir de la table principale créée à l'étape précédente)
-> Dans la fonction de tracé Boucle sur Paramètres et obtenir leurs limites et appeler la fonction d'affichage
-> Tracez les graphiques en utilisant les valeurs du tableau principal tout en appliquant les valeurs limites appropriées.
Voici le code pour les deux dernières étapes:
afficher = Une fonction ({ Processus , Étiquette , Par , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = Nouvelle fenetre ( "Rapport d'analyse des tendances" || Longue date ( Aujourd'hui ()) ,
Zone de liste H (
Boîte de panneau ( "Individuel & Gamme mobile" , Tableau de données actuel ( dt ) ; // dt est la table principale de l'étape 2.
cc = Carte de contrôle (
Exemple d'étiquette ( Comme nom ( Étiquette )) ,
Taille de groupe ( 1 ) , KSigma ( 3 ) ,
Comme colonne ( Processus ) , Mesure individuelle ( LCL ( lmt1 [ 6 ]) , AVG ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))
) ,
Où ( Comme colonne ( Par ) == Src_Type )
) ;
) , // Exclut d'autres types de graphique pour réduire l'espace !!
) ;
) ;
) ;
terrain = Une fonction ({ lmts , pmt_path } ,
param_dt = Ouvrir ( pmt_path , "invisible" ) ;
param_summ = param_dt << Résumé ( Invisible ,
Groupe ( : Par groupe ,: Processus ,: Exemple d'étiquette ,: Par )) << Afficher la fenêtre ( 0 ) ;
Pour ( q = 12 , q <= NRow ( param_summ ) , q ++, Tableau de données actuel ( param_summ ) ;
col2 =: Processus [ q ] ; col3 =: Exemple d'étiquette [ q ] ; col4 =: Par [ q ] ;
Tableau de données actuel ( lmts ) ;
clms = lmts << Obtenir les noms de colonne ( Chaîne ) ;
Retirer ( clms , 1 , 3 ) ;
Pour ( t = 1 , t <= N articles ( clms ) , t ++, Tableau de données actuel ( lmts ) ;
indv_lmts = Comme colonne ( clms [ t ]) [ lmts << Obtenez des rangées où ( : Paramètre == col2 Et : Type de graphique == "Individuel" )] ;
cusum_lmts = Comme colonne ( clms [ t ]) [ lmts << Obtenez des rangées où ( : Paramètre == col2 Et : Type de graphique == "CUSUM" )] ;
ewma_lmts = Comme colonne ( clms [ t ]) [ lmts << Obtenez des rangées où ( : Paramètre == col2 Et : Type de graphique == "EWMA" )] ;
// Table de données actuelle (dt);
// dt1 = dt << récupère les lignes où (en tant que colonne (dt, col4) == clms)
// if (nrows (dt1)> 0, dt << sélectionne où (colonne (dt, col4)!! = clms) << exclure << effacer sélectionner;);
afficher ( col2 , col3 , col4 , clms [ t ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
// dt << clear row states;
) ;
) ;
) ;
Toute aide sur l'endroit où je manque le truc serait très utile. Je tente pas mal de choses mais en vain. #Comment s'il vous plaît si j'ai créé une sorte de confusion.
Merci!!
** Mise à jour: valeurs limites utilisées:
LCL = 93,6194355860458; AVG = 101,61918084006; UCL = 109,618926094074;
LCL = 91.1389663749264; AVG = 101,933916247341; UCL = 112,728866119756;
LCL = 95,791125521153; AVG = 99,6808876541094; UCL = 103,570649787066;
LCL = 96.1221889831269; AVG = 99,2913942704352; UCL = 102,460599557744;
LCL =.; AVG = 101,63975868081; UCL =.;
LCL = 96,4170696517472; AVG = 99,4247943691138; UCL = 102,43251908648;
LCL = 85,6694623331952; AVG = 102,356837670718; UCL = 119,044213008241;
LCL = 85.2093412100746; AVG = 105.163584386677; UCL = 125.117827563278; // Pour ce journal indiquant "Les limites de contrôle hors d'usage: doivent être LCL <= Avg <= UCL"
Il semble y avoir un problème lorsqu’on essaie d’obtenir un résultat de fenêtre individuel, mais lorsque j’ai essayé d’ajouter toutes les boucles dans un résultat final de fenêtre, il apparaît. Si quelqu'un peut m'aider ou si je me trompe.
Code mis à jour:
V = VList Box ( "Tout" ) ;
afficher = Une fonction ({ Processus , Étiquette , Par , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = Nouvelle fenetre ( "Rapport d'analyse des tendances" || Longue date ( Aujourd'hui ()) ,
Zone de liste H (
Boîte de panneau ( "Individuel & Gamme mobile" , Tableau de données actuel ( dt ) ; // dt est la table principale de l'étape 2.
cc = Carte de contrôle (
Exemple d'étiquette ( Comme nom ( Étiquette )) ,
Taille de groupe ( 1 ) , KSigma ( 3 ) ,
Comme colonne ( Processus ) , Mesure individuelle ( LCL ( lmt1 [ 6 ]) , AVG ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))
) ,
Où ( Comme colonne ( Par ) == Src_Type )
) ;
) , // Exclut d'autres types de graphique pour réduire l'espace !!
) ;
) ; V << Ajouter ( r1 ) ; r1 << Fermer la fenêtre ;
) ;
terrain = Une fonction ({ lmts , pmt_path } ,
param_dt = Ouvrir ( pmt_path , "invisible" ) ;
param_summ = param_dt << Résumé ( Invisible ,
Groupe ( : Par groupe ,: Processus ,: Exemple d'étiquette ,: Par )) << Afficher la fenêtre ( 0 ) ;
Pour ( q = 12 , q <= NRow ( param_summ ) , q ++, Tableau de données actuel ( param_summ ) ;
col2 =: Processus [ q ] ; col3 =: Exemple d'étiquette [ q ] ; col4 =: Par [ q ] ;
Tableau de données actuel ( lmts ) ;
clms = lmts << Obtenir les noms de colonne ( Chaîne ) ;
Retirer ( clms , 1 , 3 ) ;
Pour ( t = 1 , t <= N articles ( clms ) , t ++, Tableau de données actuel ( lmts ) ;
indv_lmts = Comme colonne ( clms [ t ]) [ lmts << Obtenez des rangées où ( : Paramètre == col2 Et : Type de graphique == "Individuel" )] ;
cusum_lmts = Comme colonne ( clms [ t ]) [ lmts << Obtenez des rangées où ( : Paramètre == col2 Et : Type de graphique == "CUSUM" )] ;
ewma_lmts = Comme colonne ( clms [ t ]) [ lmts << Obtenez des rangées où ( : Paramètre == col2 Et : Type de graphique == "EWMA" )] ;
// Table de données actuelle (dt);
// dt1 = dt << récupère les lignes où (en tant que colonne (dt, col4) == clms)
// if (nrows (dt1)> 0, dt << sélectionne où (colonne (dt, col4)!! = clms) << exclure << effacer sélectionner;);
afficher ( col2 , col3 , col4 , clms [ t ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
// dt << clear row states;
) ;
) ;
) ;
v = Nouvelle fenetre ( "tester" , V ) ;

Le nouveau problème que je me pose est plutôt que de créer différentes boîtes de panneaux à chaque fois, on met tout en dessous et on se débarrasse de ce "Où (....)".