Darstellung der unteren / oberen Grenzen und des Durchschnitts in einer RegelkarteHallo Leute,
Ich würde gerne wissen, ob es möglich ist, die unteren, oberen und durchschnittlichen Werte direkt in der Kontrollkarte (erstellt vom Kontrollkarten-Generator) anstatt in der Tabelle „Grenzwertzusammenfassungen anzeigen“ darzustellen.
Vielen Dank.
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteDanke, Jim. Es funktioniert jetzt!Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteDie Syntax der Funktion "Summarize()" hat sich in den letzten Versionen von JMP geändert. Es scheint, dass das das Problem sein könnte. Ändere die Aussage
Summarize( dt, byPhase = by( :MyPhase ) );
zu
Summarize( byPhase = by( :MyPhase ) );
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteDanke dir. Ich habe die englischen Pickle-Beispieldaten immer noch ohne Erfolg eingecheckt. Ich Schritt für Schritt, um das Skript auszuführen, und erhalte den folgenden Bericht, nachdem ich Summarize( dt/*###*/, byPhase = by( :MyPhase ) ) ausgeführt habe. Ich übersetze das Log für Sie ins Englische. Glauben Sie, dass da etwas nicht stimmt?
„dt“, dt/*###*/
Beim Besuch von „dt“ muss der Zuweisungsoperator verwendet werden
在以下脚本中,使用 /*###*/ 标记错误
Verwenden Sie im folgenden Skript /*###*/, um den Fehler zu markieren
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteDas Skript sucht nach einer bestimmten Gliederungsbox mit dem englischen Titel „Individual Measurement of Acid“.Ihre Ausgabe ist offensichtlich nicht in Englisch.Das folgende Skript ändert den Verweis auf Outline Box(2).Dies ist ein absoluter Bezug zum Gliederungskasten, während „Einzelmessung Säure“ ein relativer Bezug ist.Sie können auch versuchen, "Einzelmessung der Säure" durch zu ersetzen

Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
addTxt = Expr(
framebox << Add Graphics Script(
Description( scriptNameTBD ),
Text Color( "Black" );
Text( Center Justified, {xTBD - 2, yTBD + .1}, txtTBD );
);
);
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )[Outline Box(2)][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )[Outline Box(2)][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )[Outline Box(2)][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
// Use a separate graphics script for each annotation so that they are more easily moved 'by hand'
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "LCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), LCL, Expr(txtTBD), LCLtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "Avg Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), Avg, Expr(txtTBD), Avgtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "UCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), UCL, Expr(txtTBD), UCLtxt));
);Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteDie JSL ist die gleiche, die Sie zuvor gepostet haben. Das Tabellenbild finden Sie hier. Wie Sie sehen, wurde der Text für LCL, UCL und Durchschnitt nicht hinzugefügt.
Vielen Dank.
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteIch habe weder Zugriff auf JMP 11 noch auf einen Mac, also brauche ich Ihre Hilfe. Die Nachricht zeigt auf einen Codeabschnitt, der versucht, die LCL aus der angezeigten Ausgabetabelle zu lesen. Können Sie bitte das Bild der Tabelle bereitstellen, die von der Regelkarte mit den darin enthaltenen Grenzwerten generiert wurde?
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteIch habe die JSL auf meinem Mac JMP 11 ausprobiert. Es scheint jedoch, dass die Texte erfolgreich in das Diagramm eingefügt wurden. Im Protokollfenster erhalte ich die folgenden Fehlerinformationen und sagte, dass der Index nicht berechnet werden kann. Können Sie mir eine Erklärung geben?
For( i = 1, i <= N Elemente ( byPhase ), i++,
LCL = (Report( ct )[/*###*/"Individuelle Säuremessung"][Nummer Col Box( i )
] << erhalten)[1];
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer Regelkarte@ian_jmp
Sehr schöne Ergänzung!
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteSehr nett Jim!
Ich habe mir erlaubt, Ihren Code so zu ergänzen, dass für jede Anmerkung ein separates Grafikskript vorhanden ist:

Dadurch ist es möglich, die Anmerkungen „von Hand“ zu verschieben, um Kollisionen zu vermeiden (Rechtsklick auf das Grafikfeld, „Anpassen“ auswählen und die x- und y-Werte in den Skripten nach Belieben bearbeiten).
Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
addTxt = Expr(
framebox << Add Graphics Script(
Description( scriptNameTBD ),
Text Color( "Black" );
Text( Center Justified, {xTBD - 2, yTBD + .1}, txtTBD );
);
);
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
// Use a separate graphics script for each annotation so that they are more easily moved 'by hand'
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "LCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), LCL, Expr(txtTBD), LCLtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "Avg Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), Avg, Expr(txtTBD), Avgtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "UCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), UCL, Expr(txtTBD), UCLtxt));
);
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteHier ist ein sehr grobes Skript, das die Werte aus der Grenzwerttabelle zieht und sie in das Diagramm einfügt. Ich schlage vor, dass Sie sich die Zeit nehmen, den Skriptleitfaden zu lesen, indem Sie den folgenden Code verwenden, um genau zu erfahren, wie der Code das tut, was er tut.
Hilfe==>Bücher==>Scripting Guide

Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
framebox << Add Graphics Script(
Text Color( "Black" );
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
Text( Center Justified, {PhaseMaxRowList[i] - 2, LCL + .1}, LCLtxt );
Text( Center Justified, {PhaseMaxRowList[i] - 2, Avg + .1}, Avgtxt );
Text( Center Justified, {PhaseMaxRowList[i] - 2, UCL + .1}, UCLtxt );
);
);Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteHallo nochmal,
Die alte Software, die ich in der Vergangenheit verwendet habe, ist Minitab.
Zur Beantwortung Ihrer Frage werden die Werte automatisch von der Software und auch nach Phase dargestellt (siehe Abbildung unten).
In dem Beispiel, das ich zuvor geteilt habe, gibt es keine Phasen.
Ich weiß, ich habe zu viel gefragt, aber könnten Sie mir eine Anleitung geben, wie ich diese Aktionen (Entfernen von Tabellen- und Diagrammwerten in den Diagrammen) mithilfe von Skripten einbeziehen kann?
Danke noch einmal.

Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteDie Werte können dem Diagramm hinzugefügt werden. Wenn keine Phasen vorhanden sind, werden die Werte als Teil des Diagramms angezeigt

Aber wenn die Daten Phasen haben, befinden sich die Werte, wie Sie darauf hinweisen, in einer Tabelle neben dem Diagramm, und Sie möchten sie im Diagramm haben. Wenn Sie mit Ihrer alten Software die Werte manuell hinzufügen konnten, können Sie dies auch in JMP tun, indem Sie einfach das Diagramm mit Anmerkungen versehen

Wenn Sie dies programmgesteuert benötigen, könnte ein Skript verwendet werden, um einfach die Werte aus der angezeigten Tabelle zu lesen und auf dem IR-Diagramm zu platzieren.
Mir ist in Ihrem Beispiel aus Ihrer alten Software aufgefallen, dass nur ein Grenzwertsatz angezeigt wurde, obwohl es scheinbar unterschiedliche Phasen gab. Lag das daran, dass die Grenzwerte für alle Phasen gleich waren?
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteIch bin derjenige, der es falsch verstanden hat. Dieses Thema ist aufgekommen Vor .
Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer Regelkarte
Hallo, danke für die schnelle Antwort.
Ich glaube, ich bin nicht so klar in meiner Erklärung. Ich muss die Werte für untere, obere und durchschnittliche Linien darstellen.
Siehe unten das Beispiel, das ich suche. Links die Software, die ich in der Vergangenheit verwendet habe.
Wenn ich die Werte aus der Tabelle „Grenzwerte für Zusammenfassungen anzeigen“ darstellen kann, kann ich die zu meldende Tabelle entfernen (das beste Layout für eine Präsentation).

Betreff: Zeichnen von unteren / oberen Grenzen und Durchschnitt in einer RegelkarteSie können auf die vertikale Achse doppelklicken und Referenzlinien hinzufügen oder dem Diagrammfeld ein benutzerdefiniertes Grafikskript hinzufügen, indem Sie mit der rechten Maustaste darauf klicken. Führen Sie für die zweite Option „Hilfe > Skriptindex“ aus und suchen Sie nach „H-Zeile“.