Come posso utilizzare una colonna come linea di riferimento per una tabella bivariata? Ho una tabella di dati con 4 colonne come limite di controllo superiore, limite di avviso superiore, limite di avviso inferiore e limite di controllo inferiore. La tabella dei dati ha anche una colonna con molte variabili. C'è un valore specifico di limiti per ciascuna variabile. Sto cercando di tracciare il valore rispetto al tempo per variabile, ma vorrei che i limiti per quel grafico variabile specifico fossero aggiunti sull'asse y.
Ho allegato il file jmp di classe grande come esempio, ma ho aggiunto UCL, CL e LCL composti. Quello che voglio è rappresentare graficamente il peso (il mio valore) rispetto all'altezza (tempo) per sesso (variabile). Ma vorrei che la colonna UCL, CL e LCL mostrasse come limiti sull'asse y il grafico variabile appropriato. Spero che questo sia un po' chiaro? Qualsiasi aiuto sarà apprezzato.
Domande veloci. Come faccio se ho diversi gruppi Per con diversi tipi di limite invece che solo per (:sesso)?
Summarize( dt, byVals = by( :sex, :age ) );
UCL = :UAL[(dt << get rows where( :sex, :age == byVals[i] ))[1]];
La realtà è che entrambi i grafici UWL e LWL stanno fallendo.Semplicemente non vedi il problema nel grafico UWL.Sembra che quando si specifica Aggiungi riga di riferimento a un grafico quando il valore del grafico è un valore mancante, ".", il codice smette di funzionare da quel punto in poi per il grafico.Nel caso del grafico UWL, ha elencato tutta la linea di riferimento che si desidera visualizzare, prima che il codice smetta di funzionare quando si imbatte nel valore mancante per la linea di riferimento LWL.Tuttavia, nel grafico LWL, la riga di riferimento UWL viene tentata prima della riga di riferimento LWL e il codice smette di funzionare quando trova il valore mancante per la riga di riferimento UWL.Esistono diversi modi per aggirare questo problema, di seguito è riportato un modo per gestirlo
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :sex ) );
// Generate the Plot code
op = Overlay Plot(
X( :height ),
Y( :weight ),
by( :sex ),
SendToReport(
Dispatch(
{},
"101",
ScaleBox,
{Label Row( Label Orientation( "Vertical" ) )}
)
)
);
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group. UWL is only for F and LWL is for M
UCL = :UAL[(dt << get rows where( :sex == byVals[i] ))[1]];
LCL = :LAL[(dt << get rows where( :sex == byVals[i] ))[1]];
UWL = :UWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
LWL = :LWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
show(byvals[i],ucl,lcl,uwl,lwl);
// Make sure the UCL and LCL values are displayed
chartMin = Min( :weight[dt << get rows where( :sex == byVals[i])]);
chartMax = Max( :weight[dt << get rows where( :sex == byVals[i])]);
If(LCL < chartMin, chartMin = LCL );
If(UCL > chartMax, chartMax = UCL );
chartRange5% = (chartMax - ChartMin)/20;
chartMin = chartMin - chartRange5%;
chartMax = chartMax + chartRange5%;
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:sex == __byVals__},
Y Axis[1] << {{Min( __min__ ), Max( __max__ ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UAL", 1 ),
Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LAL", 1 ),
Add Ref Line( __WLVal__, "dotted", "Medium Dark Red", __WL__, 1 )
}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL,
Expr( __WLVal__ ), If(isMissing(UWL)==0,UWL,LWL),
Expr( __WL__ ), If(isMissing(UWL)==0,"UWL","LWL"),
Expr( __min__ ), chartMin,
Expr( __max__ ), chartMax
)
);
);Ecco anche la sceneggiatura
Sono andato avanti e ho modificato il tuo script per quello che mi serve. Funziona per quello di cui ho bisogno; tuttavia ora che ho aggiunto un'ulteriore linea di riferimento sto riscontrando problemi. In allegato un esempio generale. Bigclass con colonne aggiuntive sono allegate e lo script che ho modificato. Sto cercando di includere un limite di avviso superiore, ma il valore sarà disponibile solo per il sesso F. E per il gruppo M esiste un limite di avviso inferiore. Quando eseguo lo script, l'UWL apparirà per il primo grafico che è per il gruppo F, ma l'LWL non apparirà sul secondo gruppo grafico M. Qualche idea su come aggirare questo problema?
Proprio quello di cui ho bisogno. Funziona solo su JMP12 ovviamente. Grazie.
C'è una traccia di discussione che ha già trattato questo argomento.Vedere:
Definisci UCL/LCL in colonne