Hilfe beim Festlegen von Spezifikationen für ein bivariates Diagramm mit Gruppierungsvariablen
Hallo,
Ich verwende Big Class als Beispiel für mein Vorhaben. Angenommen, ich möchte Gewicht (Y) gegen Größe (X) darstellen und dabei Alter und Geschlecht als BY-Variablen verwenden. In meinem Fall kann ich jedoch nicht vorhersagen, wie viele Ebenen die BY-Variablen haben werden. Für jedes bivariate Diagramm passe ich eine Linie an. Ich möchte vertikale Referenzlinien an den unteren und oberen Spezifikationsgrenzen von „Größe“ und horizontale Referenzlinien an den unteren und oberen Spezifikationsgrenzen von „Gewicht“ hinzufügen. Diese Spezifikationsgrenzwerte befinden sich in den Spalten meiner Tabelle. Innerhalb jeder Kombination aus Alter und Geschlecht sind die Spezifikationsgrenzen konstant (variieren nicht von Zeile zu Zeile), aber die Spezifikationsgrenzen variieren zwischen diesen Kombinationen. Wie kann ich dies in JMP 18 tun?
</CODE></PRE>
<P>Ich dachte daran, eine Übersichtstabelle mit allen Werten zu erstellen, die ich brauche.</P>
<BR />
<BR />
<PRE><CODE class=" language-jsl">dt = Data Table( "Big Class" );
rep=Bivariate(
SendToByGroup( Bygroup Default ),
Y( :weight ),
X( :height ),
Fit Line(
{Confid Curves Fit( 1 ), Confid Shaded Fit( 1 ), Line Color( {212, 73, 88} )
}
),
By( :age, :sex ),
);
summary = dt << Summary(
Group( :age, :sex, :LSL_Height,:USL_Height,:LSL_Weight,:USL_Weight ),
Freq( "None" ),
Weight( "None" ),
output table name( "Summary of Big Class grouped by age, sex" )
);
Das funktioniert leider nicht:
for (i=1,i<= n rows(summary), i++,
rep << EVAL(SendToByGroup(
{:age == eval(age[i]), :sex == eval(sex[i])},
SendToReport(
Dispatch( {}, "height", ScaleBox,
{Add Ref Line( eval(LSL_Height[i]), "Solid", "Red", "", 1 ),
Add Ref Line( eval(uSL_Height[i]), "Solid", "Red", "", 1 )
}
)
),
SendToReport(
Dispatch( {}, "Weight", ScaleBox,
{Add Ref Line( eval(LSL_Weight[i]), "Solid", "Black", "", 1 ),
Add Ref Line( eval(uSL_Weight[i]), "Solid", "Black", "", 1 )
}
)
),
);
)
);
Danke
Automatisierung und SkriptingBetreff: Hilfe beim Festlegen von Spezifikationen für ein bivariates Diagramm mit GruppierungsvariablenBeachten Sie, dass die Achsen nicht automatisch auf Basis von Referenzlinien skaliert werden.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt_specs = dt << Summary(
Group(:sex),
Quantiles(25, :height),
Quantiles(25, :weight),
Quantiles(75, :height),
Quantiles(75, :weight),
Freq("None"),
Weight("None"),
Link to original data table(0),
output table name("spec limits by sex")
);
Column(dt_specs, "Quantiles25(height)") << Set Name("LSL_Height");
Column(dt_specs, "Quantiles25(weight)") << Set Name("LSL_Weight");
Column(dt_specs, "Quantiles75(height)") << Set Name("USL_Height");
Column(dt_specs, "Quantiles75(weight)") << Set Name("USL_Weight");
bivs = dt << Bivariate(
SendToByGroup(Bygroup Default),
Y(:weight),
X(:height),
Fit Line({Confid Curves Fit(1), Confid Shaded Fit(1), Line Color({212, 73, 88})}),
By(:age, :sex),
Group Options(Return Group(0)) // makes this easier but can slighlty complicate other things
);
For Each({biv}, bivs,
rep = Report(biv);
biv_title = rep << get title;
cur_age = Word(-1, biv_title, "=");
spec_row = dt_specs << Get Rows Where(:sex == cur_age);
// X-Axis
rep[AxisBox(2)] << Add Ref Line(dt_specs[spec_row, "LSL_Height"][1], "Dashed", blue, "LSL", 2);
rep[AxisBox(2)] << Add Ref Line(dt_specs[spec_row, "USL_Height"][1], "Dashed", blue, "USL", 2);
// Y-Axis
rep[AxisBox(1)] << Add Ref Line(dt_specs[spec_row, "LSL_Weight"][1], "Dashed", blue, "LSL", 2);
rep[AxisBox(1)] << Add Ref Line(dt_specs[spec_row, "USL_Weight"][1], "Dashed", blue, "USL", 2);
);
Betreff: Hilfe beim Festlegen von Spezifikationen für ein bivariates Diagramm mit GruppierungsvariablenIch finde es bequemer, diese Methode zu verwenden, um die Ausgabeanzeige zu ändern

Names Default To Here( 1 );
dt = Data Table( "Big Class_withSpecs" );
rep = dt << Bivariate(
SendToByGroup( Bygroup Default ),
Y( :weight ),
X( :height ),
Fit Line( {Confid Curves Fit( 1 ), Confid Shaded Fit( 1 ), Line Color( {212, 73, 88} )} ),
By( :age, :sex ),
);
summary = dt << Summary(
Group( :age, :sex, :LSL_Height,:USL_Height,:LSL_Weight,:USL_Weight ),
Freq( "None" ),
Weight( "None" ),
output table name( "Summary of Big Class grouped by age, sex" )
);
For( i = 1, i <= N Rows( summary ), i++,
// There is a separate output display for each by group
// Set the report to modify
reprpt = report(rep[i]);
// For each report AxisBox(1) is the Y axis and AxisBox(2) is the X axis
reprpt[AxisBox(1)] << add Ref Line(summary:LSL_Weight[i], "Solid","Red", "", 1 );
reprpt[AxisBox(1)] << add Ref Line(summary:USL_Weight[i], "Solid","Red", "", 1 );
reprpt[AxisBox(2)] << add Ref Line(summary:LSL_Height[i], "Solid","Red", "", 1 );
reprpt[AxisBox(2)] << add Ref Line(summary:USL_Height[i], "Solid","Red", "", 1 );
);