Tutto,
Devo modificare il mio Generatore di grafici con script in modo che imposti varie scale per ogni grafico.
Ho una tabella del modulo (semplificato):
:data - solo una data
:rawValue - un valore numerico
:byVariable - diversi valori categorici per separare :rawValues in gruppi
:rawMedian - solo un valore mediano per ciascuno dei gruppi, formula Col Quantile(:rawValue, 0.5, :byVariable)
Lo traccio in questo modo:
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 )
)
Ora, vorrei impostare la scala dell'asse Y per ogni grafico separatamente ed essere uguale, diciamo, 3*:rawMedian per quello specifico :byVariable.
Qual è il modo migliore per farlo?
Grazie,
M.
Ecco un semplice esempio che imposta valori diversi per ciascuno degli assi per i gruppi.Se non capisci come lo script utilizza gli alberi di visualizzazione per modificare i valori, gli alberi di visualizzazione sono documentati nella Guida allo scripting
Aiuto==>Libreria di documentazione
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);
);