Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPHallo zusammen,
Ich habe in JMP an Kontrolldiagrammen gearbeitet und möchte die Y-Achse basierend auf der unteren Spezifikationsgrenze (LSL) oder der oberen Spezifikationsgrenze (USL) neu skalieren. Kann mir jemand erklären, wie ich das in JMP erreichen kann? Ich möchte, dass die Y-Achse basierend auf der LSL oder USL dynamisch angepasst wird, um die Daten im Verhältnis zu den Spezifikationsgrenzen besser zu visualisieren.
Vielen Dank im Voraus!
Automatisierung und SkriptingGrundlegende Datenanalyse und ModellierungBetreff: Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPWurden diese (LSL und/oder USL) auf die Eigenschaften der Spezifikationsgrenzwertspalte festgelegt? Wenn nicht, wie sehen Ihre Daten aus und wo sind die Grenzwerte gespeichert?
Betreff: Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPJa, LSL und USL wurden auf die Eigenschaften der Spalte „Spezifikationsgrenze“ eingestellt.
Dies wird erreicht durch dieset propertyFunktion auf den Spalten derdtsplitcopyDatentabelle. Das Skript ruft die Grenzwerte aus einer anderen Tabelle ab (pIDlimits_copy) und verwendet diese Werte dann, um die Spezifikationsgrenzen und Kontrollgrenzen für die entsprechenden Spalten indtsplitcopymit demset propertyFunktion.
Betreff: Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPHier ist der Teil des Skripts:
// Get the column names from the split data table, which are really the different release results
cols = dtsplitcopy << get column names( string );
// Loop across the split data table and read the values for that column from the dt_limits_copy data table. Populate the Spec Limits and Control Limits
For( i = 1, i <= N Cols( dtsplitcopy ), i++,
limrow = Try( (pIDlimits_copy << get rows where( pIDlimits_copy:labelny == cols[i] ))[1], . );
If( Is Missing( limRow ) == 0,
specs = {LSL( . ), USL( . ), Target( . ), Show Limits( 1 )};
specs["LSL"] = pIDlimits_copy:Lower Limit Value[limrow];
specs["USL"] = pIDlimits_copy:Upper Limit value[limrow];
Column( dtsplitcopy, Char( cols[i] ) ) << set property( "spec limits", Eval( specs ) );
controllimits = {Individual Measurement( Avg( a ), LCL( b ), UCL( c ) )};
// If lower limit is missing it is set to mean - (UCL - mean) = 2*mean - UCL as this will fix issues with zones otherwise being wrong if set to missing
Substitute Into( controllimits, Expr( b ), if(ismissing(pIDlimits_copy:Lower_Control_Limit[limrow]), 2*pIDlimits_copy:Mean_Plot[limrow] - pIDlimits_copy:Upper_Control_Limit[limrow], pIDlimits_copy:Lower_Control_Limit[limrow])); // this is done to get correct zones
Substitute Into( controllimits, Expr( c ), pIDlimits_copy:Upper_Control_Limit[limrow] );
Substitute Into( controllimits, Expr( a ), pIDlimits_copy:Mean_Plot[limrow] );
Column( dtsplitcopy, Char( cols[i] ) ) << set property( "control limits", Eval( controllimits ) );
// These notes are added so that later we can choose to hide the "artificial lower limits" which is only included for the zones to be correct
Column( dtsplitcopy, char( cols[i] ) ) << set property( "notes", if(ismissing(pIDlimits_copy:Lower_Control_Limit[limrow]),"Only one limit","Two limits"));
);
);
dtsplitcopy << sort( by( Date ), Replace Table );
n_vars = N Items(cols);
// Create window for a control chart for all parameters of a given product from a given site
NW = New Window(sitename || " " || prod_ID || " Report",
For( v = 39, v <= n_vars, v += 1, //changed from column 38 to 39 to avoid 'Date' being printet as well.
tmp = :column(v) << get property("notes");
Control Chart Builder(
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Include Missing Categories( 0 ),
Name( "AIAG (Ppk) Labeling" )(1),
Variables( Y( :Column(v)) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Show Lower Limit( tmp == "Two limits" ), Sigma( "Moving Range" ), Zones( 1 ) ),
Warnings( Test 1( 0 ), Test 5( 1 ), Test Beyond Limits( 1 ) )
),
)
);
vlb = V List Box( ob = Outline Box("Cpk estimates and print of data") )
);
Betreff: Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPNach welcher Art von Skalierung suchen Sie? Wenn ich mich richtig erinnere, skaliert der Kontrolldiagramm-Generator auf der Grundlage von Spezifikationsgrenzen, sofern diese festgelegt wurden.
Betreff: Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPIn diesem Kontrolldiagramm beispielsweise beginnt die Skala bei 150 statt bei 0. Ich würde die Y-Achse proportional zur LSL und USL ändern lassen.
Betreff: Neuskalierung der Y-Achse in Kontrolldiagrammen basierend auf LSL oder USL in JMPDies könnte einige Ideen geben
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colname = "height";
Column(dt, colname) << Set Property("Spec Limits", {LSL(30), USL(100), Show Limits(1)});
ccb = dt << Control Chart Builder(
Variables(Y(Eval(colname))),
Chart(Position(1), Limits(Spec Limits(1))),
Show Control Panel(0)
);
specs = Column(dt, colname) << Get Property("Spec Limits");
Report(ccb)[AxisBox(2)] << Min(specs["LSL"]) << Max(specs["USL"]);