Étiquette de carte IR et LCLJ'ai le script suivant qui fonctionne bien, il crée plusieurs graphiques IR basés sur des valeurs dans une liste générée à partir des valeurs uniques d'un datatable. J'aimerais que chaque graphique soit étiqueté de la même manière que la valeur de la liste à partir de laquelle il a été généré. Je voudrais également définir toutes mes limites de contrôle inférieures à 0. Je ne vois pas comment faire ça.
resume (SNTime2, UnitNames = by (Column ("Sub_name")));
count_UnitNames = nitems (UnitNames);
Nouvelle fenêtre ("Résumé des temps d’exécution M11 - Carte de contrôle",
Zone de liste V (
pour (i = 1, i <= count_UnitNames, i ++,
Carte de contrôle (
Exemple d'étiquette (date),
Taille du groupe (1),
KSigma (3),
Chart Col (: Nom ("Moyenne (durée d'exécution)"), mesure individuelle),
Où (: Sub_name == UnitNames [i]),
SendToReport (
Envoi(
{"Mesure individuelle de la moyenne (durée d'exécution)"},
"2",
ScaleBox,
{Format ("hr: m: s", 11, 0)}
)));
)
));
Merci
Re: étiquette de la carte IR et LCLJe vais vous montrer les changements nécessaires pour faire ce que vous voulez, cependant, je le ferai en vous montrant que vous pouvez résoudre le problème vous-même, car JMP vous montrera comment faire.
Votre demande est de changer le nom de la boîte à contour créée qui répète le titre, "Mesure individuelle de la moyenne (durée d'exécution)". La première étape consiste donc simplement à changer ce titre dans l’une des sorties.

Ensuite, allez au triangle rouge et sauvegardez le script pour le graphique modifié
Control Chart(
Sample Label( :Date ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Name( "Mean(RunTime)" ), Individual Measurement( LCL( 0 ) ) ),
Where( :Sub_name == UnitNames[i] ),
SendToReport(
Dispatch(
{},
"Individual Measurement of Mean(RunTime)",
OutlineBox,
{Set Title( "This is the title I want to have" )}
),
Dispatch(
{"Individual Measurement of Mean(RunTime)"},
"2",
ScaleBox,
{Format( "hr:m:s", 13, 0 )}
),
Dispatch(
{"Individual Measurement of Mean(RunTime)"},
"Control Chart Limits frame",
FrameBox,
{Frame Size( 64, 208 )}
)
)
);
Notez comment JMP a indiqué comment modifier le graphique pour attribuer un nom différent au titre de la zone de contour.
Dispatch(
{},
"Individual Measurement of Mean(RunTime)",
OutlineBox,
{Set Title( "This is the title I want to have" )}
)
Maintenant, tout ce que vous avez à faire est de réintégrer ce changement dans votre script et de remplacer le titre par UnitNames [i], qui correspond aux entrées de votre liste pour le sous-nom demandé.
New Window( "M11 Runtime times Summary - Control Chart",
V List Box(
For( i = 1, i <= count_UnitNames, i++,
Control Chart(
Sample Label( :Date ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Name( "Mean(Runtime)" ), Individual Measurement( LCL( 0 ) ) ),
Where( :Sub_name == UnitNames[i] ),
SendToReport(
Dispatch(
{},
"Individual Measurement of Mean(RunTime)",
OutlineBox,
{Set Title( UnitNames[i] )}
),
Dispatch(
{"Individual Measurement of Mean(Runtime)"},
"2",
ScaleBox,
{Format( "hr:m:s", 11, 0 )}
)
)
)
)
)
);
Re: étiquette de la carte IR et LCLMerci cela fonctionne pour les limites.
Comment changer le nom des cartes IR. Je produis environ 16 à 20 graphiques dans une fenêtre verticale. Lorsque je le crée à partir des données de la table, ils sont tous étiquetés avec la valeur de colonne Sub_name, mais lorsque je le crée à partir du script, ils sont étiquetés avec "Tableau de contrôle" et "Mesure individuelle de la moyenne (exécution)". Je voudrais que chaque graphique soit étiqueté avec la valeur dans UnitNames [i].
Merci encore.
Re: étiquette de la carte IR et LCLLes solutions que j'ai adoptées pour résoudre ce problème consistaient à utiliser une table de limites sauvegardées, dans laquelle seule une limite inférieure avec la valeur "0" est spécifiée, ainsi qu'un exemple de spécification de la LCL dans la spécification de graphique IM.
Names Default To Here( 1 );
// Setup some sample data
SNTime2 = Open( "$SAMPLE_DATA/Quality Control/Phase Historical Data.jmp" );
SNTime2:Force << set name("Mean(RunTime)");
SNTime2:Site << set name("Sub_name") << data type( character );
SNTime2 << New Column("Date",format("m/d/y"),formula(today()));
// create a limits table with just a lower limit of zero and save it
dtlim = New Table( "Limits",
Add Rows( 1 ),
New Column("_LimitsKey",
Character( 4 ),
"Nominal",
Set Values( {"_LCL"} )
),
New Column("Mean(Runtime)",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [0] ),
Set Display Width
)
);
close( dtlim, save("$TEMP\limits.jmp"));
// Run your code
Summarize( SNTime2, UnitNames = by( Column( "Sub_name" ) ) );
count_UnitNames = N Items( UnitNames );
New Window( "M11 Runtime times Summary - Control Chart",
V List Box(
For( i = 1, i <= count_UnitNames, i++,
Control Chart(
Sample Label( :Date ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Name( "Mean(Runtime)" ), Individual Measurement ),
// Read in limits
Get Limits( "$TEMP\limits.jmp" ),
Where( :Sub_name == UnitNames[i] ),
SendToReport(
Dispatch(
{"Individual Measurement of Mean(Runtime)"},
"2",
ScaleBox,
{Format( "hr:m:s", 11, 0 )}
)
)
)
)
)
);
La documentation sur l'utilisation des tables de limites se trouve dans le manuel Quality and Process Methods
Aide ==> Livres ==> Qualité et processus
et dans l'index de script
Aide ==> Index de script ==> Carte de contrôle
Vous pouvez également simplement utiliser la spécification LCL sur le graphique de la messagerie instantanée pour obtenir les mêmes résultats.
// You can also just use the LCL paramater on the IM specification
Summarize( SNTime2, UnitNames = by( Column( "Sub_name" ) ) );
count_UnitNames = N Items( UnitNames );
New Window( "M11 Runtime times Summary - Control Chart",
V List Box(
For( i = 1, i <= count_UnitNames, i++,
Control Chart(
Sample Label( :Date ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Name( "Mean(Runtime)" ), Individual Measurement( LCL(0)) ),
Where( :Sub_name == UnitNames[i] ),
SendToReport(
Dispatch(
{"Individual Measurement of Mean(Runtime)"},
"2",
ScaleBox,
{Format( "hr:m:s", 11, 0 )}
)
)
)
)
)
);