Aiuto per inserire specifiche su un grafico bivariato con variabili di raggruppamento
Ciao,
Userò Big Class come esempio di ciò che sto cercando di fare. Supponiamo di voler tracciare un grafico di peso (Y) rispetto all'altezza (X), usando età e sesso come variabili BY. Ma nel mio caso, non posso prevedere quanti livelli avranno le variabili BY. Per ogni grafico bivariato, inserisco una linea. Voglio aggiungere linee di riferimento verticali ai limiti di specifica inferiore e superiore di "altezza" e linee di riferimento orizzontali ai limiti di specifica inferiore e superiore di "peso". Ho questi valori dei limiti di specifica nelle colonne della mia tabella. All'interno di ogni combinazione di età e sesso, i limiti di specifica sono costanti (non variano da riga a riga), ma variano tra queste combinazioni. Come posso farlo in JMP 18?
</CODE></PRE>
<P>Ho pensato di creare una tabella riepilogativa con tutti i valori di cui ho bisogno.</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" )
);
Sfortunatamente questo non funziona:
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 )
}
)
),
);
)
);
Grazie
Automazione e scriptingRe: Aiuto per inserire le specifiche su un grafico bivariato con variabili di raggruppamentoSi noti che l'asse non si ridimensiona automaticamente in base alle linee di riferimento
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: Aiuto per inserire le specifiche su un grafico bivariato con variabili di raggruppamentoTrovo più comodo utilizzare questo metodo per modificare la visualizzazione dell'output

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