Extrahieren der vom Benutzer ausgewählten Parameter für X und Y beim Zeichnen von Variabilitätsdiagrammen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />In jmp ist das Scripting wirklich neu. Ich habe eine Frage dazu, hier ist ein Skript, das ich geschrieben habe. Was ich vorhabe, ist, dass ich zwei Tabellen habe. Tabelle 1 enthält beispielsweise die Grenzen jedes Tests. (Beachten Sie, dass die tatsächliche Tabelle einige tausend Tests enthält. Dies ist nur ein Beispiel.)
Tabelle 1
| Prüfung | Untere Grenze | Obere Grenze |
|---|
| Test 1 | 3 | 10 |
| Test 2 | 3.4 | 12 |
| Test 3 | 5 | 12 |
Und die andere Tabelle (einige tausend Spalten lang) enthält die Testergebnisse
Tabelle 2
| Test 1 | Test 2 | Test 3 |
|---|
| 5 | 6 | 8 |
| 5 | 6.1 | 8.11 |
| 5.2 | 6.23 | 8.12 |
Und was ich vorhabe, ist die Darstellung einer Variabilitätskarte für die zweite Tabelle für einige ausgewählte Tests (4 oder 5), und ich möchte, dass die Variabilitätskarte Autoplot-Referenzlinien basierend auf den Grenzwerten der ersten Tabelle - der oberen und der unteren - verwendet Grenze. Jetzt bin ich in einer Situation festgefahren, in der ich nicht weiß, wie ich mein Skript vervollständigen soll. Momentan sieht es so aus: Ich kann die Referenzlinie an einem festen Punkt bei "1" zeichnen lassen. Ich möchte jedoch in der Lage sein, den Test zu extrahieren, den der Benutzer plotten möchte, und die Grenzwerte aus der ersten Datentabelle zu extrahieren und die Grenzwerte als Referenzlinie darzustellen.
Gibt es eine Möglichkeit, die vom Benutzer ausgewählten Parameter (X und Y) des Variabilitätsdiagramms zu extrahieren und bei der Suche nach seinen Grenzen die Bezugslinie aufzuzeichnen? Ab sofort sieht mein Code so aus
dt_data1 = Datentabelle (1); // die Limits-Tabelle
dt_data2 = Datentabelle (2); // die eigentliche Datentabelle
// Start des GUI-Fensters
// ------------------------------------------------ --------------------------------------------------
ColSel = Filter Col Selector (Datentabelle (dt_data1), 250, 10, ColumnToPlot = ColSel << Get Selected);
ColSel << Set Max Selected (2); // Maximal zulässige ausgewählte Spalte ist 1
win = Neues Fenster ("Test",
<< modal,
Textfeld ("Spalten zur Darstellung des Variabilitätsdiagramms"),
ColSel,
go = Button Box ("OK",
ColumnToPlot = ColSel << Auswahl übernehmen
);
);
// ------------------------------------------------ -------------------------------------------
// Ende des GUI-Fensters
Warten (1);
Aktuelle Datentabelle (dt_data2);
Colnames = dt_data2 << Get Column Names (Numeric, String);
LowerLimit = Colnames [2];
UpperLimit = Colnames [3];
Aktuelle Datentabelle (dt_data1);
Variabilitätstabelle (
Max Iter (100),
Conv Limit (0,00000001),
Abscissas zur Anzahlintegration (128),
Anzahl Funktionsauswertungen (65536),
Analysetyp ("Wählen Sie die beste Analyse (EMS REML Bayesian)"),
Jittered Punkte (1),
Box-Plots anzeigen (1),
Std Dev Chart (0),
Range Bars anzeigen (1),
SendToReport (
Versand(
"",
"2",
ScaleBox,
{Ref Line hinzufügen (0, "Vollton", "Schwarz", "", 1),
Fügen Sie die Ref-Zeile hinzu (1, "Fest", "Blau", "", 2); } // Ersetzen Sie 1 durch den importierten Wert
)
)
);
Betreff: Extrahieren der vom Benutzer ausgewählten Parameter für X und Y beim Zeichnen von VariabilitätsdiagrammenVielen Dank für den Hinweis, dass ich die Spalteneigenschaften verwenden kann, um die Grenzwerte auf diese Weise festzulegen.
Betreff: Extrahieren der vom Benutzer ausgewählten Parameter für X und Y beim Zeichnen von VariabilitätsdiagrammenWenn Sie die Grenzwerte für jede der Spalten in Ihrer Messdatentabelle in die Spalte mit den Grenzwerten für die Grenzwerte verschieben, zeigt die Variability Chart-Plattform die Grenzwerte automatisch aus der Grenzwertdatentabelle an.
Hier ist ein Skript, das ich kürzlich geschrieben habe, um eine veröffentlichte Frage zum Thema "Importieren von Kontrollgrenzen" zu beantworten. Dieses Skript liest aus einer Grenzwerttabelle und verschiebt sie in eine Messdatentabelle.
// Bevor Sie dieses Skript ausführen, öffnen Sie die Mess- und Begrenzungsdatentabellen.
// Wenn Sie die beiden Dateien verwenden, die ich an die Antwort angehängt habe, sind die dtmeas = und
// dtlim = Anweisungen unten zeigen auf die richtige Datentabelle. Aber falls
// Sie verschiedene Datentabellen verwenden, müssen die Namen der Datentabellen ändern
Namensvorgabe bis hier ( 1 ) ;
dtmeas = Datentabelle ( Messtabelle ) ;
dtlim = Datentabelle ( "Grenzwerttabelle" ) ;
// Teilen Sie die Datentabelle basierend auf dem Notencode auf, sodass sich jede Gruppe in einer anderen Gruppe befindet
// Säule
dtsplitmeas = dtmeas << Teilt ( Split By ( : GRDBWT ) . Teilt ( : ACC Basisgewicht ) ) ;
// Rufen Sie die Spaltennamen aus der geteilten Datentabelle ab, die sich wirklich unterscheiden
// Codes sortieren
Cols = dtsplitmeas << Spaltennamen erhalten ( Schnur ) ;
// Durchlaufen Sie die Split-Datentabelle und lesen Sie die Werte für diese Spalte aus der
// dtlim Datentabelle. Füllen Sie die Spezifikationsgrenzen und Kontrollgrenzen auf
Zum ( ich = 1 . ich <= N Cols ( dtsplitmeas ) . ich ++
limrow = Versuchen ( ( dtlim << reihen wo ( dtlim : Gradcode == Cols [ ich ] )) [ 1 ] . . ) ;
Ob ( Wird vermisst ( limRow ) == 0 .
specs = { LSL ( . ) . USL ( . ) . Ziel ( . ) . Limits anzeigen ( 1 )} ;
specs [ "LSL" ] = dtlim : NIEDRIG [ limrow ] ;
specs [ "Ziel" ] = dtlim : TARG [ limrow ] ;
specs [ "USL" ] = dtlim : HOCH [ limrow ] ;
Säule ( dtsplitmeas . Verkohlen ( Cols [ ich ] ) ) << Eigenschaft festlegen ( "Spezifikationsgrenzen" . Eval ( specs ) ) ;
Kontrollgrenzen = { XBar ( Durchschn ( ein ) . LCL ( b ) . UCL ( c ) )} ;
Ersatz in ( Kontrollgrenzen . Ausdruck ( ein ) . dtlim : LWarn [ limrow ] ) ;
Ersatz in ( Kontrollgrenzen . Ausdruck ( c ) . dtlim : uwarn [ limrow ] ) ;
Ersatz in ( Kontrollgrenzen . Ausdruck ( b ) . dtlim : targ [ limrow ] ) ;
Säule ( dtsplitmeas . Verkohlen ( Cols [ ich ] ) ) << Eigenschaft festlegen ( "Kontrollgrenzen" . Eval ( Kontrollgrenzen ) ) ;
) ;
) ;