Als Diagrammreferenzlinien anzeigen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich importiere Spezifikationsgrenzen mit einem Skript in jede Datentabelle, die ich grafisch darstellen möchte.Während bei Distributionen Spezifikationen angezeigt werden, sind dies bei Boxplots nicht der Fall.Ich habe versucht, „Show Spec Limits(1)“ in mehreren Bereichen einzufügen, aber ohne Erfolg.Ich bin ein JSL-Neuling und suche daher etwas Fachwissen.Es ist nicht zu bewältigen, die GUI der einzelnen Spalteneigenschaften durchzugehen, um das Kontrollkästchen zu aktivieren.Hier ist ein Codeausschnitt;
dt = open("datatable.jmp");
obj = Fähigkeit(
Y( :spec1, :spec2, :spec3, :spec4 ),
Spec Limits( Import Spec Limits("spec_limits_table.jmp")));
obj << Grenzen anzeigen(1);
obj << Spezifikationsgrenzen als Spalteneigenschaften speichern;
Betreff: Als Diagrammreferenzlinien anzeigenEs funktioniert hervorragend, Jim.Danke schön!!!
Betreff: Als Diagrammreferenzlinien anzeigenIch habe Ihr mitgeliefertes Skript ausgeführt und festgestellt, dass die Capability Platform meiner Meinung nach falsch strukturierte Spalteneigenschaften für Spezifikationsgrenzen erstellt.Ich habe dies an JMP gesendet, um eine Antwort zu erhalten.
Alles, was sich ändern muss, ist die Methode zum Extrahieren der aktuellen Spezifikationsgrenzen angesichts Ihrer aktuellen Struktur.Die neue Struktur ist keine Liste,
Hier ist das überarbeitete Skript, von dem ich glaube, dass es mit Ihren Daten funktioniert.Denken Sie daran: Sobald der Wert „Grenzwerte anzeigen“ festgelegt ist, ändert JMP die Struktur der Spezifikationsgrenzwerteigenschaft, sodass zukünftige „get property(“spec limits“)“ die Spezifikationsgrenzwerte als Liste zurückgeben und nicht die seltsame Struktur, die von der Capability zugewiesen wird Plattform.
Namen standardmäßig hier ( 1 );
dt= aktuelle Datentabelle ();
// Alle numerischen Spalten in der Datentabelle abrufen
Numerische Spalten = dt << Spaltennamen abrufen (numerisch, Zeichenfolge);
// Schleife über alle Spalten und setze die Show Limits
Für ( ich = 3 , ich <= N Artikel (Numerische Spalten), i++,
// Wenn die Anfrage zum Abrufen der Spezifikationsgrenzen einen leeren Wert zurückgibt
// Spalte hat keine Spezifikationsgrenzen, also legen Sie keine Show Limits fest
Wenn ( Ist leer ( Spalte ( dt, Numerische Spalten ) << Eigentum bekommen ( „Spezifikationsgrenzen“ ) ) == 0 ,
// Dies ist die Struktur der Liste der Spezifikationsgrenzen. Wenn Sie nur das einstellen
// Grenzen anzeigen, es wird die anderen Grenzen löschen, also müssen sie es sein
// abgerufen und in die Struktur eingefügt
speclimitvals = Verkohlen ( Spalte (dt,Numerische Spalten ) << Eigentum bekommen ( „Spezifikationsgrenzen“ ) );
LSL = Versuchen ( Num ( Wort ( 2 , Substr (SpezifischeGrenzwerte, Enthält (SpezifischeGrenzwerte, „LSL(“ ) ), „()“ ) ), . );
USL = Versuchen ( Num ( Wort ( 2 , Substr (SpezifischeGrenzwerte, Enthält (SpezifischeGrenzwerte, „USL(“ ) ), „()“ ) ), . );
Ziel = Versuchen ( Num ( Wort ( 2 , Substr (SpezifischeGrenzwerte, Enthält (SpezifischeGrenzwerte, "Ziel(" ) ), „()“ ) ), . );
Bewertung (
Ersatz (
Ausdruck (
Spalte ( dt, __col__ ) << Eigenschaft festlegen (
„Spezifikationsgrenzen“ ,
{LSL( __LSL__ ), USL( __USL__ ), Target( __Target__ ), Show Limits( 1 )}
)
),
Ausdruck ( __col__ ), Numerische Spalten ,
Ausdruck ( __LSL__ ), LSL,
Ausdruck ( __USL__ ), USL,
Ausdruck ( __Target__ ), Ziel
)
);
)
);
Betreff: Als Diagrammreferenzlinien anzeigenTut mir leid, ich habe den endgültigen Befehl zum Speichern der Spezifikationen verpasst.
obj << Spezifikationsgrenzen als Spalteneigenschaften speichern;
Betreff: Als Diagrammreferenzlinien anzeigenIch bin mir nicht sicher, ob ich Ihnen hinsichtlich der Struktur meiner Spezifikationsgrenzen folgen kann.Unten ist das Skript, das ich ausführe, um die Grenzwerte anzuhängen, das alle Grenzwerte in den angegebenen Spalten auffüllt.Dies stammt aus Skriptbeispielen in der Hilfe.Vermisse ich etwas?
Ich habe zwei Methoden ausprobiert, keine war erfolgreich;
1. Hängen Sie Ihren Code an dieses Skript an und führen Sie es aus
2. Führen Sie dieses Skript für dt aus.Speichern Sie dt mit Spezifikationsgrenzen.Führen Sie den obigen Code in einem separaten Skript aus.
Namen sind standardmäßig hier(1);
dt = Open( "C:\junk1_example.jmp" );
obj = Fähigkeit(
Y(
:Name( "Met1_Res/um" ),
:Name( "Met2_Res/um" ),
:Name( "Met3_Res/um" ),
:Name( "Met4_Res/um" ),
),
Spec Limits(:Name( "Met1_Res/um" ) (LSL(1.0), Target(1.3), USL(1.6) ),
:Name( "Met2_Res/um" ) (LSL(1.0), Target(1.3), USL(1.6) ),
:Name( "Met3_Res/um" ) (LSL(1.0), Target(1.3), USL(1.6) ),
:Name( "Met4_Res/um" ) (LSL(1.0), Target(1.3), USL(1.6) )
)
);
Betreff: Als Diagrammreferenzlinien anzeigenZunächst einmal gibt es einen kleinen Fehler im Code, den ich gepostet habe.Die Linie:
Wenn ( Ist leer ( Spalte ( dt , Numerische Spalten [ ich ] ) ) == 0 ,
sollte eigentlich lauten:
Wenn ( Ist leer ( Spalte ( dt , Numerische Spalten [ ich ] ) << Eigentum bekommen ( „Spezifikationsgrenzen“ ) ) == 0 ,
aber das ist nicht der Grund, warum das Skript die Spezifikationsbeschränkungen aufhebt.
Der Grund für dieses Problem liegt darin, dass die Grenzwerte unabhängig von der Methode, die Sie zum Auffüllen der Grenzwerte in der ursprünglichen Datentabelle verwenden, falsch angegeben wurden.Auch wenn sie auf den Distributionsplattformen usw. zu funktionieren scheinen, wurde die eigentliche Spezifikation des Spezifikationslimits falsch gemacht.
Wenn die Spezifikationsbegrenzungseigenschaft aus der Datentabelle extrahiert wird, die Sie Ihrer letzten Antwort angehängt haben, wird Folgendes zurückgegeben:
Spezifikationsgrenzen (LSL (1), USL (1,6), Ziel (1,3))
Was zurückgegeben werden sollte, ist:
{LSL( 1 ), USL( 1.6 ), Ziel( 1.3 )}
Wenn Sie die Spezifikationsgrenzen für die Spalte „Met1_Res/um“ manuell aufrufen und das Kontrollkästchen „Grenzwerte anzeigen“ aktivieren, wird die Grenzwertliste in die richtige Struktur geändert.
Wenn Sie den Originalcode, den ich eingefügt habe, nehmen und ihn anhand der Datentabelle „Halbleiterfähigkeit“ ausführen, werden Sie feststellen, dass er den Wert „Grenzwerte anzeigen“ festlegt, da er für die Ausführung festgelegt ist.Wenn Sie in Ihrer Beispieldatentabelle zur richtigen Struktur der Spezifikationsgrenzen wechseln, funktioniert es auch.
Natürlich könnte ein Skript geschrieben werden, um die Struktur in der ursprünglichen Datentabelle zu lesen, und die Struktur wird dann automatisch in die richtige Struktur geändert, wenn der angezeigte Grenzwertwert zusammen mit den Grenzwerten ersetzt wird.Aber ich würde davon abraten, sondern eher das PGM herausfinden und korrigieren, das die falsche Grenzstruktur falsch angibt.
Betreff: Als Diagrammreferenzlinien anzeigenJMP 12.2
Ich habe Ihren Code ausgeführt und das dt ausgetauscht -> Nur Datei öffnen.Im Grunde wird Ihr Code mit meinen Daten verglichen.
Betreff: Als Diagrammreferenzlinien anzeigenWelche JMP-Version verwenden Sie?
Basieren die Kommentare, die Sie angeben, auf der Ausführung des Codes, ohne Änderungen, die ich in meine Antwort aufgenommen habe, oder basieren die Kommentare auf der Ausführung des Codes anhand Ihrer Datentabelle?
Können Sie die von Ihnen verwendete Datentabelle anhängen?
Betreff: Als Diagrammreferenzlinien anzeigenAus irgendeinem Grund werden durch das Abrufen von Spaltennamen (numerisch, Zeichenfolge) meine Spezifikationsgrenzen aufgehoben.Wenn ich ändere, um Spaltennamen (numerisch) abzurufen, bleiben die Grenzwerte bestehen, aber das Kontrollkästchen „Spezifikation anzeigen“ ist nicht aktiviert.
Betreff: Als Diagrammreferenzlinien anzeigenHier ist ein Skript, das die Anzeigegrenzen für alle numerischen Spalten in der Datentabelle festlegt, wenn die Spalte Spezifikationsgrenzen hat.
Namen standardmäßig hier ( 1 ) ;
dt = Offen ( „$SAMPLE_DATA/semiconductor Capability.jmp“ ) ;
// Alle numerischen Spalten in der Datentabelle abrufen
Numerische Spalten = dt << Spaltennamen abrufen ( numerisch , Zeichenfolge ) ;
// Schleife über alle Spalten und setze die Show Limits
Für ( ich = 3 , ich <= N Artikel ( Numerische Spalten ) , ich ++,
// Wenn die Anfrage zum Abrufen der Spezifikationsgrenzen einen leeren Wert zurückgibt
// Spalte hat keine Spezifikationsgrenzen, also legen Sie keine Show Limits fest
Wenn ( Ist leer ( Spalte ( dt , Numerische Spalten [ ich ] ) ) == 0 ,
// Dies ist die Struktur der Liste der Spezifikationsgrenzen. Wenn Sie nur das einstellen
// Grenzen anzeigen, es wird die anderen Grenzen löschen, also müssen sie es sein
// abgerufen und in die Struktur eingefügt
Bewertung (
Ersatz (
Ausdruck (
Spalte ( dt , __col__ ) << Eigenschaft festlegen (
„Spezifikationsgrenzen“ ,
{ LSL ( __LSL__ ) , USL ( __USL__ ) , Ziel ( __Ziel__ ) , Grenzen aufzeigen ( 1 )}
)
) ,
Ausdruck ( __col__ ) , Numerische Spalten [ ich ] ,
Ausdruck ( __LSL__ ) , Versuchen ( ( Spalte ( dt , Numerische Spalten [ ich ] ) << Eigentum bekommen ( „Spezifikationsgrenzen“ ))[ „LSL“ ] , . ) ,
Ausdruck ( __USL__ ) , Versuchen ( ( Spalte ( dt , Numerische Spalten [ ich ] ) << Eigentum bekommen ( „Spezifikationsgrenzen“ ))[ „USL“ ] , . ) ,
Ausdruck ( __Ziel__ ) , Versuchen ( ( Spalte ( dt , Numerische Spalten [ ich ] ) << Eigentum bekommen ( „Spezifikationsgrenzen“ ))[ "Ziel" ] , . )
)
)
)
) ;