Conseils pour améliorer la visualisation des cartes de contrôleBonjour,
J'ai créé plusieurs cartes de contrôle à partir d'une table de données JMP et j'ai tout enregistré sous forme de rapport. J'aimerais faire ce qui suit :
- comment puis-je modifier le script afin de tracer uniquement les 30 derniers points de données de la table de données ?
- comment puis-je modifier le script afin de définir la bonne taille du graphique ? En ce moment, chaque fois que je l'ouvre, le graphique est compressé sur le côté gauche
Merci pour votre aide!
Re : Conseils pour améliorer la visualisation des cartes de contrôleVous devrez ajouter du code pour masquer et exclure le premier point de données du graphique.... Si vous réexécutez le script qui effectue le masquage et l'exclusion, il utilisera le nouveau calcul dt << N Rows() en fonction de l'augmentation Nombre de rangées.Re : Conseils pour améliorer la visualisation des cartes de contrôleMerci beaucoup, maintenant le script fonctionne comme prévu en termes de paramètres d'axe.
Je pense que la dernière étape dont j'ai besoin est la suivante :
normalement, nous avons le datatable intégré dans un rapport JMP, donc en ajoutant une nouvelle ligne de données sur les données, le graphique est mis à jour automatiquement avec la nouvelle valeur, j'ai remarqué que les "30 derniers points de données" ne roulent pas dans le sens 1 nouvelle valeur, 1 l'ancienne valeur est inférieure mais de jour en jour, le nombre de points tracés augmente de 1.
Il y a quelque chose que je peux faire ?
Re : Conseils pour améliorer la visualisation des cartes de contrôleOups... quelques erreurs.
Il doit y avoir un ";" après le dt << Sélectionnez Effacer ;
Le graphique que vous utilisez doit avoir AxisBox(2) référencé, et non AxisBox(1) ;
dt = current data table();
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select;
cc = Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport(
Dispatch(
{"Individual Measurement of Si STD 3 ppb"},
"IR Chart of IM",
FrameBox,
{Frame Size( 1301, 208 )}
)
)
);
// Set the axis parameters
report(cc)[AxisBox(2)]<<MIN></MIN>Re : Conseils pour améliorer la visualisation des cartes de contrôleLe script que j'utilise est donc le suivant :
dt = current data table();
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select
cc = Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport(
Dispatch(
{"Individual Measurement of Si STD 3 ppb"},
"IR Chart of IM",
FrameBox,
{Frame Size( 1301, 208 )}
)
)
);
// Set the axis parameters
report(cc)[AxisBox(1)]<<MIN></MIN>Concernant le premier point, nous déclamons ce code, je reçois ceci

Pour les points 2 et 3, comment puis-je vérifier cela ?
Re : Conseils pour améliorer la visualisation des cartes de contrôleLa ligne
report(cc)[AxisBox(1)]<<MIN></MIN>
apparemment, il ne trouve pas l'AxisBox() qu'il doit modifier.
- L'exemple que j'ai inclus dans mon 13 décembre 3h23 (mon heure) a-t-il fonctionné correctement ?
- La variable « dt » est-elle affectée pour pointer vers votre table de données cible ?
- Le "cc" pointe-t-il vers la plate-forme de carte de contrôle ?
cc = Control Chart(
Cela aiderait de pouvoir voir le code réel que vous utilisez.Pourriez-vous s'il vous plaît fournir ce code ?
Re : Conseils pour améliorer la visualisation des cartes de contrôleBonjour,
le script fonctionne bien pour sélectionner les 30 derniers points de données, mais je pense que j'ai un problème pour définir le minimum et le maximum sur l'axe X comme dans la capture d'écran ci-dessous :

Re : Conseils pour améliorer la visualisation des cartes de contrôleEssaye ça
dt = current data table();
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select
cc = Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport(
Dispatch(
{"Individual Measurement of Si STD 3 ppb"},
"IR Chart of IM",
FrameBox,
{Frame Size( 1301, 208 )}
)
)
);
// Set the axis parameters
report(cc)[AxisBox(1)]<<MIN></MIN>
Pour vous donner la meilleure longueur d'avance dans le monde des scripts dans JMP, je vous suggère fortement de lire le Guide de script.
Aide==>Livres==>Guide de script
et si vous n'êtes pas versé dans la programmation informatique en général, je vous suggère de trouver o sur le Web et de rechercher "introduction en ligne gratuite à la programmation".
Re : Conseils pour améliorer la visualisation des cartes de contrôleBonjour,
j'ai donc essayé de suivre votre indice, ci-dessous le script que j'obtiens après avoir créé une carte de contrôle individuelle à partir d'une table de données :
Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport( Dispatch( {"Individual Measurement of Si STD 3 ppb"}, "IR Chart of IM", FrameBox, {Frame Size( 1301, 208 )} ) )
);
Où dois-je coller le code ?
Désolé mais je suis vraiment un débutant en scripting.
Merci.
Re : Conseils pour améliorer la visualisation des cartes de contrôleLa première option que j'ai suggérée ne nécessite pas de sous-ensemble !Voir le script ci-dessous
names default to here(1);
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select
// Run the control chart
cc = Control Chart Builder(
Variables( Y( :NPN1 ) ),
Chart( Position( 1 ), Limits( Sigma( "Moving Range" ) ) ),
Chart( Position( 2 ), Limits( Sigma( "Moving Range" ) ) )
);
// Set the axis parameters
report(cc)[AxisBox(1)]<<MIN></MIN>Re : Conseils pour améliorer la visualisation des cartes de contrôleBonjour Txnelson,
merci pour vos suggestions, malheureusement, ce que je voudrais faire est de coder dans le script quelque chose à récupérer automatiquement à partir de la table de données uniquement pour les 30 derniers points de données sans créer un sous-ensemble de la table de données actuelle.
Merci.
Re : Conseils pour améliorer la visualisation des cartes de contrôleIl y a plusieurs façons de faire ça.
- Sélectionnez toutes les lignes où Row() < N Rows(dt)-30, puis masquez-les et excluez-les
- Créez un sous-ensemble du dernier en sélectionnant toutes les lignes où Row() >= N Rows(dt)-30, puis utilisez Tables==>Subset pour créer une nouvelle table de données et exécutez le générateur de graphiques sur la nouvelle table de données.
Sauf si vous avez modifié manuellement la taille du graphique dans le script, JMP utilisera les tailles de graphique par défaut définies dans les préférences.Ma suggestion est que vous exécutiez le graphique de manière interactive.Ensuite, modifiez manuellement la taille du graphique à la taille souhaitée, puis accédez au triangle rouge et sélectionnez « Enregistrer le script ».Le code du script sera intégré au script qu'il produit, pour modifier la taille du graphique lorsque vous l'exécutez.