Salut tout le monde
J'utilise le générateur de graphiques pour créer les graphiques dans un rapport. J'aime ajouter les lignes de référence sur le graphique sous la forme CL, LCL, UCL. Je les ai dans les colonnes (par exemple X) de mon tableau. J'essaie de les appeler dans le script comme,
{Ajouter une ligne de référence (:X, "Solid", "Black", "LCL", 1 )}
Mais ça ne marche pas
Pourriez-vous m'aider s'il vous plaît
Merci
ColMin et ColMax prendront simplement la valeur minimale ou maximale de la colonne et ignoreront la valeur manquante.
Quelques exemples rapides :
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
New Column("Value", Numeric, "Continuous", Format("Best", 12), Set Values([., 1, ., ., 2]))
);
Show(ColMin(:Value));
Show(ColMax(:Value));
//A bit more complicated. Loc gets rows which have non missing value as a matrix
//Then we use that matrix to get values from Value column
//and finally from that we will use only the first index
Show(:Value[Loc(:Value << get as matrix)][1]);
//You can run this in parts to see how it works
//Loc(:Value << get as matrix)
//:Value[Loc(:Value << get as matrix)]
//Will return missing value
Show(:Value[1]);Merci. cela a fonctionné, même si je ne sais toujours pas s'il me manque des données dans une colonne, comment puis-je sélectionner la cellule contenant les données. Mais dans ce cas, l’utilisation des fonctions a fonctionné.

Pourriez-vous fournir une sorte d’exemple de tableau de données ? Il ne contient pas de données réelles tant qu'il montre l'idée de base des données. Selon l'apparence des données, vous pourriez peut-être utiliser des fonctions ColMin/ColMax comme ColMin(dt:UCL).
@jthi , Merci.
J'ai les limites de contrôle sous forme de colonnes. Je peux appeler une cellule UCL[1], mais le problème est que certaines de ces colonnes ont des cellules vides qui pourraient être la première ou n'importe quelle autre cellule. Je souhaite ajouter la ligne Ref de la cellule dans la colonne qui n'est pas vide.
Avez-vous une idée de comment je peux faire ça ?
Merci
En fonction de vos données, vous pouvez procéder de cette façon :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//add limit columns
dt << New Column("UCL", Numeric, Continuous, Set Each Value(70));
dt << New Column("CL", Numeric, Continuous, Set Each Value(60));
dt << New Column("LCL", Numeric, Continuous, Set Each Value(50));
gb = Graph Builder(Variables(X(:age), Y(:height)), Elements(Points(X, Y, Legend(4))));
axisb = (report(gb)[axisbox(2)]);
axisb << ({
Add Ref Line(dt:UCL[1], "Solid", "Black", "UCL", 1),
Add Ref Line(dt:CL[1], "Solid", "Black", "CL", 1),
Add Ref Line(dt:LCL[1], "Solid", "Black", "LCL", 1)
});Ou tracez ces colonnes directement :

ou définissez-les sur les propriétés de colonne comme limites de spécifications :


Tout cela peut être scripté si nécessaire.
Modifier:
Et si vous vouliez dire que vous avez défini la propriété Control Limit Column, cela nécessitera un peu de script supplémentaire pour obtenir les limites de la propriété column (la partie analysée dépendra un peu de la casse et de la façon dont les limites de contrôle sont définies, mais l'idée devrait être la même ) :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
obj = dt << Control Chart(Sample Size(:Sample), KSigma(3), Chart Col(:Weight, XBar, R));
Wait(0);
obj << Save Limits(in Column);
gb = Graph Builder(
Variables(X(:Sample), Y(:Weight)),
Elements(Points(X, Y, Legend(3)), Smoother(X, Y, Legend(4)))
);
//get Control Limits column property and parse limits
colProp = dt:weight << Get Property("Control Limits");
xbarLimits = Words(Char(colProp[1]));
xbarCL = Num(Word(3, xbarLimits[1], "()"));
xbarLCL = Num(Word(2, xbarLimits[2], "()"));
xbarUCL = Num(Word(2, xbarLimits[3], "()"));
//add control limits
axisb = (report(gb)[axisbox(2)]);
axisb << ({
Add Ref Line(xbarUCL, "Solid", "Black", "UCL", 1),
Add Ref Line(xbarCL, "Solid", "Black", "CL", 1),
Add Ref Line(xbarLCL, "Solid", "Black", "LCL", 1)
});