Hallo allerseits
Ich verwende den Graph Builder, um die Diagramme in einem Bericht zu erstellen. Ich füge die Referenzlinien im Diagramm gerne als CL,LCL,UCL hinzu. Ich habe sie in den Spalten (z. B. X) in meiner Tabelle. Ich versuche, sie im Skript so aufzurufen:
{Referenzlinie hinzufügen(:X, „Solid“, „Black“, „LCL“, 1 )}
Aber es funktioniert nicht
Könnten Sie mir bitte helfen
Danke
ColMin und ColMax übernehmen lediglich den Minimal- bzw. Maximalwert aus der Spalte und ignorieren den fehlenden Wert.
Einige kurze Beispiele:
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]);Danke schön. Es hat funktioniert, obwohl ich immer noch nicht weiß, ob in einer Spalte Daten fehlen, und wie ich die Zelle mit den Daten auswählen kann. Aber in diesem Fall hat die Nutzung der Funktionen funktioniert.


Könnten Sie eine Art Beispieldatentabelle bereitstellen? Es gibt keine echten Daten, solange es die Grundidee der Daten zeigt. Abhängig davon, wie die Daten aussehen, könnten Sie möglicherweise ColMin/ColMax-Funktionen wie ColMin(dt:UCL) verwenden.
@jthi , Danke schön.
Ich habe die Eingriffsgrenzen als Spalten. Ich kann eine Zelle als UCL[1] bezeichnen, aber das Problem ist, dass einige dieser Spalten leere Zellen haben, die die erste oder eine andere Zelle sein könnten. Ich möchte die Ref-Zeile aus der Zelle in der Spalte hinzufügen, die nicht leer ist.
Habt ihr eine Idee, wie ich das machen kann?
Danke
Abhängig von Ihren Daten könnten Sie es so machen:
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)
});Oder zeichnen Sie diese Spalten direkt:

oder legen Sie diese als Spezifikationsgrenzen auf Spalteneigenschaften fest:


All dies kann bei Bedarf per Skript erfolgen.
Bearbeiten:
Und wenn Sie gemeint haben, dass Sie die Eigenschaft „Kontrollbegrenzungsspalte“ festgelegt haben, ist etwas zusätzliches Skripting erforderlich, um die Grenzwerte aus der Spalteneigenschaft zu ermitteln (der Analyseteil hängt größtenteils ein wenig von der Groß- und Kleinschreibung und der Festlegung der Kontrollgrenzen ab, aber die Idee sollte dieselbe sein 
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)
});