Modifica della legenda delle righe per variabileSto cercando di automatizzare alcuni grafici bivariati, ma sto riscontrando un problema nel tentativo di modificare le legende delle righe.
Ecco un esempio di ciò che sto cercando di fare:
Open("$SAMPLE_DATA/Big Class.jmp");
variables = {"age", "sex"};
for(v=1,v<=nitems(variables),v++,
::var = variables[v];
biv = Bivariate( Y( :height), X( :weight),
group by(as column(::var)),
Fit Spline( 1, Standardized, {Line Width( 2 )} ));
Report( biv )[Frame Box(1)] << Row Legend( ::var, color(1), marker(1));
); La mia uscita prevista sarebbe di due finestre con trame identiche - una con una spline in forma e una legenda per l'età e un'altra con una leggenda di adattamento spline per il sesso. Gli accoppiamenti spline funzionano come previsto, ma il comando della legenda delle righe non riconosce la mia variabile. Cosa mi manca?
Grazie in anticipo!
Ri: Modifica la legenda delle righe per variabileSpiegazione molto utile. Grazie!
Ri: Modifica la legenda delle righe per variabileLa ragione della differenza è dovuta ai requisiti delle 2 diverse dichiarazioni. La spline di adattamento che hai menzionato non ha riferimenti alle variabili, quindi presumo che tu stia effettivamente chiedendo perché il gruppo By non ha bisogno di un Eval (). Il ragionamento è il compimento dei requisiti per la Group By e la Row Legend. Il Group By è una dichiarazione molto semplice, che ha una flessibilità molto limitata. Sa che si deve specificare una colonna. Infatti, il codice funzionerà molto bene anche senza la funzione As Column (). Passando alla legenda delle righe, questo elemento può assumere molti formati diversi e senza Eval () il parser proverà ad usare la stringa effettiva di :: var come parte delle informazioni, e :: var non è ciò che hai analizzato, il valore di :: var è ciò che si desidera analizzare.
Ri: Modifica la legenda delle righe per variabileGrazie!
Domanda secondaria per aiutarmi a capire la valutazione variabile - perché la spline si adatta perfettamente a eval () ;? Quando è necessario valutare la variabile e quando non è necessario valutarla?
Ri: Modifica la legenda delle righe per variabileHai solo bisogno di Eval () la variabile :: Var
Open("$SAMPLE_DATA/Big Class.jmp");
variables = {"age", "sex"};
for(v=1,v<=nitems(variables),v++,
::var = variables[v];
biv = Bivariate( Y( :height), X( :weight),
group by(as column(::var)),
Fit Spline( 1, Standardized, {Line Width( 2 )} ));
Report( biv )[Frame Box(1)] << Row Legend( eval(::var), color(1), marker(1));
);