Aide à mettre des spécifications sur un graphique bivarié avec des variables de regroupement
Bonjour,
Je vais utiliser Big Class comme exemple. Imaginons que je souhaite représenter graphiquement le poids (Y) en fonction de la taille (X), en utilisant l'âge et le sexe comme variables BY. Or, je ne peux pas prédire le nombre de niveaux que comporteront ces variables. Pour chaque graphique bivarié, j'ajuste une ligne. Je souhaite ajouter des lignes de référence verticales aux limites de spécification inférieure et supérieure de la « taille », ainsi que des lignes de référence horizontales aux limites de spécification inférieure et supérieure de la « poids ». Ces valeurs de limites de spécification sont affichées en colonnes dans mon tableau. Pour chaque combinaison d'âge et de sexe, les limites de spécification sont constantes (ne varient pas d'une ligne à l'autre), mais elles varient entre ces combinaisons. Comment puis-je réaliser cela dans JMP 18 ?
</CODE></PRE>
<P>J'ai pensé à faire un tableau récapitulatif avec toutes les valeurs dont j'ai besoin.</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" )
);
Malheureusement, cela ne fonctionne pas :
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 )
}
)
),
);
)
);
Merci
Automatisation et scriptsRe : Aide pour mettre des spécifications sur un graphique bivarié avec des variables de regroupementVeuillez noter que les axes ne sont pas mis à l'échelle automatiquement en fonction des lignes de référence.
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);
);
Re : Aide pour mettre des spécifications sur un graphique bivarié avec des variables de regroupementJe trouve plus pratique d'utiliser cette méthode pour modifier l'affichage de sortie

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 );
);