Comment vérifier si la légende du générateur de graphiques s'affiche ou nonJe me demandais quel serait le script pour vérifier si la légende du générateur de graphiques s'affiche ou non.Je souhaite créer un raccourci de barre d'outils qui afficherait ou masquerait la légende en fonction de l'état dans lequel se trouve la légende (si elle est affichée, elle est masquée et si elle est masquée, elle est affichée).merci pour toute suggestion!
Steve
ScriptRe : Comment vérifier si la légende du générateur de graphiques s'affiche ou nonC'est assez proche alors appréciez-le!C'est dommage qu'il n'y ait pas quelque chose comme <Re : Comment vérifier si la légende du générateur de graphiques s'affiche ou non
Si vous utilisez le message Visibilité pour ouvrir et fermer la légende, le message Obtenir la visibilité renverra l'état.
names default to here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb =Graph Builder(
Size( 525, 448 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
report(gb)[legendbox(1)]<<VISIBILITY></VISIBILITY>
Cependant, le statut de visibilité ne changera pas si la légende est définie à l'aide de
gb << Show Legend(0);
// or
gb << Show Legend(1);
Re : Comment vérifier si la légende du générateur de graphiques s'affiche ou nonJ'ai essayé de vérifier comment je pouvais voir si la légende s'affichait ou non, mais je n'arrivais pas à comprendre comment elle était masquée par l'option Afficher la légende(). Afficher les propriétés n'a pas aidé non plus.

Donc, la seule chose qui m'est facilement venue à l'esprit est d'obtenir le script du générateur de graphes sous forme de chaîne, puis de vérifier s'il contient Afficher la légende (0) ... cela ne fonctionnera pas si l'utilisateur a modifié les préférences, vous devrez donc vérifiez-les également. Quelque chose comme ça pourrait fonctionner (et il y a, espérons-le, un moyen plus simple / plus robuste de le faire):
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(Variables(X(:Sex), Y(:Height), Group X(:Age)), Elements(Box Plot(X, Y)));
change_legend_state = function({gb_ref}, {Default Local},
legend_pref = Char(Get Platform Preference(Graph Builder(Show Legend)));
gb_script = Char(gb_ref << Get Script());
If(Contains(legend_pref, "Show Legend(0)") & !Contains(gb_script, "Show Legend(1)"),
gb_ref << Show Legend(1);
,
gb_ref << Show Legend(0);
);
);
wait(1);
change_legend_state(gb);
wait(1);
change_legend_state(gb);