Aggiungi linee di riferimento, che consentono intervalli, per variabile di colonna, su pagine separate nel Costruttore di graficiHo diverse colonne di dati numerici, insieme a una colonna datetime numerica continua, al secondo più vicino. Posso tracciare alcuni o tutti questi in base alla data e all'ora in una serie temporale per visualizzarli simultaneamente. Esiste una colonna nominale di caratteri "gruppo" che nel Costruttore di grafici posso utilizzare per separare l'analisi per pagina.
Esiste un'altra colonna di data numerica continua "Data evento" che si trova al giorno più vicino (unito da un'altra tabella) che corrisponde a ciascun valore "gruppo". Ci sarebbe un valore unico di data evento per una determinata variabile "gruppo". Vorrei automatizzare o creare script aggiungendo righe di riferimento dalla colonna "Data evento" all'asse x, tuttavia con "Consenti intervalli", impostando il valore minimo come data dell'evento alle 00:00:00 e il valore massimo come Data dell'evento alle 23:59:59 in base alla variabile della colonna "gruppo", con l'intento che ogni "gruppo" vada su una pagina separata. Di seguito è riportato un esempio di come apparirebbe su una pagina, insieme alla tipica finestra di dialogo Linea di riferimento in Impostazioni asse nel Costruttore di grafici come riferimento:


Analisi e modellazione dei dati di baseEsplorazione e visualizzazione dei datiRi: Aggiungere linee di riferimento che consentono intervalli, per variabile di colonna, su pagine separate nel Costruttore di graficiSe scegli di utilizzare una finestra di dialogo per impostare il Costruttore di grafici

È possibile utilizzare una colonna By() anziché specificarla come colonna Pagina. In questo caso, ciascun output visualizzato del Costruttore di grafici può avere linee di riferimento di intervallo separate

names default to here(1);
dt=
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{100, 120},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{140, 160},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
);Ri: Aggiungere linee di riferimento che consentono intervalli, per variabile di colonna, su pagine separate nel Costruttore di graficiGrazie @txnelson .
Può funzionare, ma mi chiedo se invece di specificare manualmente la posizione di ciascuna linea di riferimento di Per gruppo, potrei chiamare la colonna Data evento per impostare le posizioni della linea di riferimento in qualche modo. È realizzabile?Ri: Aggiungi linee di riferimento che consentono intervalli, per variabile di colonna, su pagine separate nel Costruttore di graficiPotresti condividere un esempio dei tuoi dati/creare un modello di dati? Potrebbero esserci dei metodi un po' più complicati nel generatore di grafici per raggiungere questo obiettivo senza fare affidamento sugli script.
Ri: Aggiungere linee di riferimento che consentono intervalli, per variabile di colonna, su pagine separate nel Costruttore di graficiNaturalmente gli intervalli di riferimento possono essere impostati in base ai valori all'interno di altre colonne o dai risultati delle piattaforme JMP. Stavo solo illustrando un modo per rendere referenziabili i diversi livelli della colonna Page modificando l'uso di By(). Di seguito è riportata una semplice espansione dell'esempio fornito in precedenza. Imposta l'intervallo della linea di riferimento in base alla media e allo std della colonna dell'asse X per ciascuno dei grafici

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// This example sets the range of the reference lines based upon the mean +- 1 std
// of the weight column for each level of the sex column
Summarize( dt, sexGroup = by( :sex ), means = Mean( :weight ), stds = Std Dev( :weight ) );
Eval(
Eval Expr(
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[1] - stds[1] ), Expr( means[1] + stds[1] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[2] - stds[2] ), Expr( means[2] + stds[2] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
)
)
);
Il linguaggio di scripting di JMP (JSL) ha la capacità di fare praticamente tutto ciò che immagini di dover fare. Ti suggerisco di prenderti il tempo per leggere la Guida allo scripting che ti fornirà le conoscenze su come JSL può realizzare ciò che desideri.