Hilfe beim Ziehen von Daten für die Einstellung der dynamischen AchsenbegrenzungHallo,
Ich versuche, die Achsengrenzen in einem Diagramm in Abhängigkeit von den aktuell aufgezeichneten Daten zu bestimmen, sodass alle Referenzlinien und Datenpunkte nach Benutzereingaben sichtbar sind.
Die eingestellte Achsengrenze ist entweder der Wert der USL/LSL-Referenzlinie oder der höchste/niedrigste aufgezeichnete Datenpunkt. Das in einem Variabilitätsdiagramm verwendete Diagramm und die Daten sind die Werte in Spalte 2, gruppiert nach Spalte 1.
Anfangs dachte ich, ich könnte dies tun, indem ich das Min/Max der beiden Werte bestimme, wobei der Verweis auf die Daten durch die Funktion Col Minimum mit dem Argument
Var1_Min = Eval( Min((LSL[1]*0.95), Col Minimum( :Column 2, :Column 1["Group1"] )));
Ich habe viel Zeit mit der Suche verbracht und kann anscheinend keine Funktion finden, die das tut, was ich brauche - irgendwelche Ideen?
GrafikSkripterstellungBetreff: Hilfe beim Abrufen von Daten für die Einstellung der dynamischen AchsenbegrenzungDanke für deine Antwort Jim!
Leider habe ich kein einziges Spezifikationslimit für meine Spalte, da zwischen den Werten basierend auf einer anderen Spalte unterschieden wird. Daher habe ich noch keine Möglichkeit gefunden, herkömmliche Spaltenspezifikationslimits festzulegen, ohne meine Daten vollständig in zwei Tabellen aufzuteilen.
Ich konnte letztendlich die Lösung für mein Problem finden, indem ich Get Rows Where verwendete:
<BR />dt = Current Data Table();
G1 = dt << Get Rows Where (:Column 1 == "Group1");
G1_Min = Eval( Min((LSL[1]*0.95), Min(:Column 2[G1])));
G1_Max = Eval( Max((USL[1]*1.05), Max(:Column 2[G1])));<BR />dt << clear select;
<BR />dt = Current Data Table();
G2 = dt << Get Rows Where (:Column 1 == "Group2");
G2_Min = Eval( Min((LSL[2]*0.95), Min(:Column 2[G2])));
G2_Max = Eval( Max((USL[2]*1.05), Max(:Column 2[G2])));<BR />dt << clear select;
Dann zum Diagramm im Versandabschnitt (für das erste Diagramm ist das zweite mit 1-> 2 dupliziert):
Dispatch ({Min(G1_Min), Max(G1_Max), Inc( Eval((G1_Max - G1_Min) / 7))),
Add Ref Line( LSL[1], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( USL[1], "Solid", "Medium Dark Blue", "USL", 1 )}* Hinweis Ich habe in meiner ursprünglichen Frage vergessen zu erwähnen, dass die USL/LSL bereits in einer Liste definiert und für die Referenzlinien verwendet werden.
Betreff: Hilfe beim Abrufen von Daten für die Einstellung der dynamischen AchsenbegrenzungWenn Sie Ihre Spezifikationsgrenzen als Spalteneigenschaften gespeichert und „Grenzen anzeigen“ angegeben haben, erweitert Graph Builder automatisch den Achsenbereich, um die USL und LSL einzuschließen.

Sie können die Achsenwerte jedoch leicht überschreiben, wie unten gezeigt, wobei der maximale X-Achsenwert in die USL plus 10 % des Bereichs von USL-LSL geändert wird

Hier ist das einfache Skript
names default to here(1);
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "\Example.jmp" );
// Change column property: NPN1
Data Table( "Example" ):NPN1 << Set Property(
"Spec Limits",
{LSL( 104.41 ), USL( 131.89 ), Target( 118.15 ), Show Limits( 1 )}
);
// Change column property: NPN2
Data Table( "Example" ):NPN2 << Set Property(
"Spec Limits",
{LSL( 96.59 ), USL( 130.9 ), Target( 113.75 ), Show Limits( 1 )}
);
// Report snapshot: semiconductor capability - Graph Builder
gb = Data Table( "Example" ) <<
Graph Builder(
Variables( X( :NPN2 ), Y( :NPN1 ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
// Set Maximum Y axis value to be displayed
specs = dt:NPN1 << get property( "Spec Limits" );
maxY = Max( Col Maximum( :NPN1 ), specs["USL"] + .1 * (specs["USL"] - specs["LSL"]) );
Report( gb )[AxisBox( 2 )] << Max( maxY );