Modification de la légende de ligne par variableJ'essaie d'automatiser quelques tracés bivariés, mais je rencontre un problème en essayant de modifier les légendes des lignes.
Voici un exemple de ce que j'essaie de faire:
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));
); Mon résultat attendu serait deux fenêtres avec des tracés identiques - une avec un ajustement de spline et une légende pour l’âge et une autre avec une légende d’ajustement de spline pour le sexe. Les ajustements de spline fonctionnent comme prévu, mais la commande de légende de ligne ne reconnaît pas ma variable. Qu'est-ce que je rate?
Merci d'avance!
Re: Modification de la légende de la ligne par variableExplication très utile. Je vous remercie!
Re: Modification de la légende de la ligne par variableLa raison de la différence est due aux exigences des deux déclarations différentes. La spline d’ajustement que vous avez mentionnée n’a pas de référence de variable. Je suppose donc que vous vous demandez pourquoi le groupe By n’a pas besoin de Eval (). Le raisonnement est la constitution des exigences pour les légendes Group By et Row. Le groupe By est une déclaration très simple, avec une flexibilité très limitée. Il sait qu'il faut spécifier une colonne. En fait, le code fonctionnera très bien même sans la fonction As Column (). En passant à la légende des lignes, cet élément peut prendre de nombreux formats différents. Sans Eval (), l’analyseur essaiera d’utiliser la chaîne réelle de :: var dans le cadre des informations, et :: var n’est pas ce que vous avez analysé, la valeur de :: var est ce que vous voulez analyser.
Re: Modification de la légende de la ligne par variableJe vous remercie!
Question secondaire pour m'aider à comprendre l'évaluation des variables - pourquoi l'ajustement de la spline fonctionne-t-il sans eval () ;? Quand devez-vous évaluer la variable et quand n'a-t-elle pas besoin d'être évaluée?
Re: Modification de la légende de la ligne par variableVous avez juste besoin d’évaluer () la variable :: 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));
);