J'ai des graphiques tracés et j'aimerais avoir un script de table que je peux utiliser pour supprimer les axes et envoyer les valeurs de l'axe x du graphique au titre du graphique avant qu'il ne soit enregistré en tant que PPT. Je ne veux pas masquer les axes dans les graphiques avant d'avoir eu la chance de les redimensionner manuellement (trop de variation dans les données pour utiliser des valeurs définies), afin que je puisse les utiliser plus tard comme graphiques en encart pour les présentations. Est-ce faisable ?
Voici les 2 bouts de code qui vont supprimer les axes puis le code pour réafficher les axes
Names Default To Here( 1 );
obj = Current Report();
(obj << xpath( "//AxisBox" )) << visibility( "collapse" );
Names Default To Here( 1 );
obj = Current Report();
(obj << xpath( "//AxisBox" )) << visibility( "visible" );
En plus de @txnelson voici un exemple de comment cela pourrait fonctionner.
L'utilisation de XPath est un peu délicate, car il traitera tous les éléments de ce type, vous devez regarder lesquels spécifiquement (ou tous) modifier/évaluer.
Pour obtenir les valeurs x (min max), ma meilleure idée était d'évaluer le script. Il y a peut-être une autre option.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = dt << Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Graph Spacing( 5 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
obj << bring window to front();
Wait( 1 );
// change the x-axis of the graph
obj << SendToReport( Dispatch( {}, "height", ScaleBox, {Min( 60.50 ), Max( 65 ), Inc( 2 ), Minor Ticks( 0 )} ) );
Wait( 3 );
// get title of x-axis and show result in log
x_axis_text = (obj << xpath( "//TextEditBox" ))[3] << get text();
Show( x_axis_text );
// collapse x-axis
(obj << xpath( "//AxisBox" ))[1] << visibility( "collapse" );
// get script of Graph Builder to evaluate min and max values
script = obj << get script();
min_txt = Regex( Char( Name Expr( script ) ), "Min\([0-9]+[.]*[0-9]*\)" );
max_txt = Regex( Char( Name Expr( script ) ), "Max\([0-9]+[.]*[0-9]*\)" );
Show( min_txt, Type( max_txt ) );
// set graph title accordingly
(obj << xpath( "//TextEditBox" ))[1] << set text( x_axis_text || " from " || min_txt || " to " || max_txt );