Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.Bonjour ! Je travaille sur un script qui trace un graphique représentant une valeur numérique (X) en fonction des outils (Y). Ce graphique inclut des limites de contrôle supérieures et inférieures, définies dans le tableau de données et variant selon le sous-groupe. Ces limites doivent être automatiquement affichées sur les graphiques lors de l'exécution du script. Je souhaite également que ces graphiques soient organisés par calques. Voici mon code actuel. Les graphiques se génèrent correctement, mais les lignes de limites de contrôle n'apparaissent pas. De plus, la taille des points du premier graphique est nettement inférieure à celle des autres. Je débute en programmation, donc toute aide est la bienvenue ! (Version JMP : 17.2)
Names Default To Here( 1 );
dt = Current Data Table();
xCol = Column( dt, "Tool" );
yCol = Column( dt, "Value" );
uclCol = Column( dt, "UCL" );
lclCol = Column( dt, "LCL" );
LayerCol = Column( dt, "Layer" );
gb = Graph Builder(
Size( 633, 6849 ),
Show Control Panel( 0 ),
Title Fill Color( "White" ),
Level Fill Color( "White" ),
Page Level Fill Color( "White" ),
Variables( X( :Tool ), Y( :Value ), Page( :Layer ) ),
Elements( Points( X, Y, Legend( 1 ) ) ),
Elements( Line( X( xCol ), Y( uclCol ), Legend( 2 ) ) ),
Elements( Line( X( xCol ), Y( lclCol ), Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Graph", ScaleBox, {Format( "Best", 12 ), Inc( 1 ), Minor Ticks( 1 )} ),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 2 ), Line Width( 2 )} ),
)
);
rep = gb << Report();
fr = rep[FrameBox( 1 )];
leg = rep[LegendBox( 1 )];
leg = rep[Legend Box( 1 )];
Try( leg << Set Item Name( 1, "Value" ) );
Try( leg << Set Item Color( 1, "Steel Blue" ) );
Try( fr << Set Marker Size( 1, 3 ) );
Try( fr << Set Marker Style( 1, "FilledCircle" ) );
Try( leg << Set Item Name( 2, "UCL" ) );
Try( leg << Set Item Name( 3, "LCL" ) );
Try( leg << Set Item Color( 2, "Red" ) );
Try( leg << Set Item Color( 3, "Red" ) );
Try( leg << Set Item Line Style( 2, "Solid" ) );
Try( leg << Set Item Line Style( 3, "Solid" ) );
Try( fr << Set Line Width( 2, 2 ) ); // UCL
Try( fr << Set Line Width( 3, 2 ) ); // LCL
Édité par txnelson JSL dans JSL Display Box
Automatisation et scriptageExploration et visualisation des donnéesRe : Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.Si vous générez le graphique souhaité à l'aide des fonctionnalités interactives de Graph Builder, il vous suffit ensuite de spécifier d'enregistrer le script, et celui-ci générera un script qui reproduira le graphique.
Re : Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.Salut Jim, merci pour ta réponse ! J'ai réussi à générer les graphiques, mais je rencontre maintenant un problème : je n'arrive toujours pas à intégrer les lignes de référence UCL et LCL à mon script. Je souhaite que, lors de son exécution, les graphiques soient séparés par calque et que chaque graphique affiche ses lignes de référence UCL et LCL respectives. Les valeurs UCL et LCL sont des colonnes de mon tableau de données, mais je ne trouve pas la bonne façon de les référencer.
Re : Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.Pouvez-vous joindre un fichier d'exemple ?
Re : Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.Salut Jim,
Tableau de données ci-joint, avec le script original que j'ai collé plus haut dans la section des scripts du tableau.
Re : Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.Il suffit d'ajouter les limites de contrôle supérieure (LCS) et inférieure (LCL) à l'axe Y, puis d'ajouter une ligne en précisant que la valeur est la seule variable à utiliser pour les points et que LCL et LCS sont les seules variables à utiliser pour les lignes.

Graph Builder(
Size( 633, 6849 ),
Show Control Panel( 0 ),
Title Fill Color( "White" ),
Level Fill Color( "White" ),
Page Level Fill Color( "White" ),
Variables(
X( :Tool ),
Y( :Value ),
Y( :UCL, Position( 1 ) ),
Y( :LCL, Position( 1 ) ),
Page( :Layer )
),
Elements(
Points( X, Y( 1 ), Legend( 1 ) ),
Line( X, Y( 2 ), Y( 3 ), Legend( 2 ) )
),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox,
{Marker Size( 2 ), Marker Drawing Mode( "Normal" )}
)
)
);
Re : Comment faire pour que mon script de graphique prenne en compte mes limites de contrôle par ligne et les ajoute automatiquement à mon graphique ? Script en cours de développement inclus.C'est bon, ça a marché ! Merci !