Tous,
Je dois modifier mon générateur de graphiques scriptés afin qu'il définisse différentes échelles pour chaque tracé.
J'ai un tableau de la forme (simplifiée):
:date - juste un rendez-vous
:rawValue - une valeur numérique
:byVariable - plusieurs valeurs catégorielles pour séparer :rawValues en groupes
:rawMedian - juste une valeur médiane pour chacun des groupes, formule Col Quantile(:rawValue, 0.5, :byVariable)
Je le trace de cette façon :
Graph Builder(
Size( 800, 500 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :date ),
Y( :rawValue ),
Y( :rawMedian ) //It's just a straight horizontal line on each plot
),
By( :byVariable )
)
Maintenant, je voudrais définir l'échelle de l'axe Y pour chaque tracé séparément et être égale, disons, 3*:rawMedian pour ce :byVariable spécifique.
Quelle est la meilleure façon de procéder ?
Merci,
M.
Voici un exemple simple qui définit des valeurs différentes pour chacun des axes pour les groupes by.Si vous ne comprenez pas comment le script utilise les arborescences d'affichage pour modifier les valeurs, les arborescences d'affichage sont documentées dans le Guide de script
Aide==>Bibliothèque de documentation
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/aircraft incidents.jmp" );
dt:Event Date << set name( "Date" );
dt:Total Uninjured << set name( "rawValue" );
dt:Engine Type << set name( "byVariable" );
dt << New Column( "rawMedian", formula( Col Quantile( :rawValue, .5, :byVariable ) ) );
gb = Graph Builder(
Size( 800, 500 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :date ),
Y( :rawValue ),
Y( :rawMedian ) //It's just a straight horizontal line on each plot
),
By( :byVariable )
);
summarize(groups=by(:byVariable));
// loop across the different byVariable values and changes the axes
For(i=1,i<=nitems(groups), i++,
report(gb[i])[AxisBox(2)]<< max (14-i);
report(gb[i])[AxisBox(3)] << min (.6 +.01*i);
);