Fügen Sie dem Graph Builder für jede Benutzerauswahl von Parametern einzigartige SPEC-Grenzwerte hinzuHi
Ich habe ein Skript geschrieben, um ein interaktives Diagramm mit dem Graph-Builder anzuzeigen, wobei der Benutzer zwei Parameter auswählen kann (MODULE_MONITOR und CHART_TYPE).
Jeder Parameter hat zwei Auswahlmöglichkeiten.
Jedes von den vier Die Option der Kartenanzeige hat einen einzigartigen Satz von SPEC-Grenzen (in der Spalte): CENTERLINE, UCL, LCL.
Ich möchte, dass jeder Graph die relevanten SPEC-Grenzen darstellt.
Vielen Dank!
JSL-Skript:
Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),
SendToReport(
Dispatch(
{},
"VALUE",
ScaleBox,
{Add Ref Line( :UCL, "Solid", "Red", "UCL", 1 ),
Add Ref Line( :LCL, "Solid", "Red", "LCL", 1 ),
Add Ref Line( :CENTERLINE, "Solid", "Black", "CENTERLINE", 1 )
}
)
)
)
AnalytikDatentabelleSkriptingBetreff: Fügen Sie dem Graph Builder für jede Benutzerauswahl von Parametern eindeutige SPEC-Grenzwerte hinzuHier ist ein Beispiel für eine Möglichkeit, Ihr Problem zu lösen
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
ldf = gb << Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "F" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( cLINE, "Solid", "Blue", "", 0 ) );
cline = Try( dt:centerline[(dt << get selected rows)[1]], . );
uc = Try( dt:ucl[(dt << get selected rows)[1]], . );
lc = Try( dt:lcl[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
Die angehängte Datentabelle enthält eine Beispieldatentabelle, die meiner Meinung nach Ihrer Tabelle ähnelt
Betreff: Fügen Sie dem Graph Builder für jede Benutzerauswahl von Parametern eindeutige SPEC-Grenzwerte hinzuHi
Danke für die Antwort
Ich habe versucht, mein Skript an Ihre Hilfe anzupassen, aber es funktioniert nicht.
Skript und Tabelle hier angehängt
Hoffe ihr könnt helfen
Tomer
Names default to here (1);
dt = Current Data Table(); // Assuming the data table is open
gb = Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),
);
ldf = gb << Local Data Filter( Add Filter( columns( :MODULE_MONITOR, :CHART_TYPE ), Where( :MODULE_MONITOR == "PLPN" ),Where( :CHART_TYPE == "SIGMA" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UCl, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LCl, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( CENTERLINE, "Solid", "Blue", "", 0 ) );
cline = Try( dt:CENTERLINE[(dt << get selected rows)[1]], . );
uc = Try( dt:UCL[(dt << get selected rows)[1]], . );
lc = Try( dt:LCL[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
Betreff: Fügen Sie dem Graph Builder für jede Benutzerauswahl von Parametern eindeutige SPEC-Grenzwerte hinzuEs gab ein paar Probleme im Code.
- Sie haben den Local Data Filter-Code im Hauptteil des Graph Builder belassen.Die Änderung, die ich gesendet hatte, entfernte diesen Code und ersetzte ihn durch a
ldf = gb << Local Data Filter(..........
Die Einbeziehung beider Filterreferenzen hat dazu geführt, dass der zweite nicht richtig funktioniert.
- Ich hatte zwei falsche Referenzen hinterlassen
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LC, "Solid", "Blue", "", 0 ) );
Es gibt einen Fehler in der Ref-Linie entfernen.Anstatt die Linie zu entfernen, muss die Linie also auf die Linienbreite 0 gesetzt werden, also muss die Linie gelesen werden
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( LC, "Solid", "Blue", "", 0 ) );
Nach diesen Änderungen hat das Skript für mich mit Ihren Daten gut funktioniert.
Names default to here (1);
dt = Current Data Table(); // Assuming the data table is open
gb = Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )/*,
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),*/
);
ldf = gb << Local Data Filter( Add Filter( columns( :MODULE_MONITOR, :CHART_TYPE ), Where( :MODULE_MONITOR == "PLPN" ),Where( :CHART_TYPE == "SIGMA" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( LC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( cLine, "Solid", "Blue", "", 0 ) );
cline = Try( dt:CENTERLINE[(dt << get selected rows)[1]], . );
uc = Try( dt:UCL[(dt << get selected rows)[1]], . );
lc = Try( dt:LCL[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
Betreff: Fügen Sie dem Graph Builder für jede Benutzerauswahl von Parametern eindeutige SPEC-Grenzwerte hinzuVielen Dank. Arbeiten!
Können Sie bitte erklären, warum Sie verwenden?
Try( Report( gb )[AxisBox( 2 )] << add Ref Line
und dann
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
für UCL, CLINE, LCL?
Tomer