Ciao a tutti,
Utilizzo JMP15 da 1 anno ma sto appena iniziando a interessarmi agli script.
Vorrei scrivere uno script per visualizzare le linee di riferimento in un grafico, basato su una tabella.
Ho 2 tabelle: dati (su cui eseguo lo script, per tracciare value=f(time)) e date, contenenti una colonna con le date corrispondenti alle linee di riferimento che vorrei avere nel grafico.
Quelle tabelle sono allegate al mio post.
Ecco il mio script attuale, che mostra una riga di riferimento basata sul primo elemento delle date della tabella, data della colonna.
ref1 = dates:name( "date" )[1];
Graph Builder(
Variables( X( :time ), Y( :value ),Page(:cat) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport( Dispatch( {}, "time", ScaleBox( 2 ), {Add Ref Line( ref1, "Dotted", "Red", "", 2 )} ) )
);Vorrei creare un ciclo "For" per creare automaticamente linee di riferimento per ogni valore della tabella "date".
Ecco cosa ho provato:
ref1 = dates:name( "date" )[1];
Graph Builder(
Variables( X( :time ), Y( :value ),Page(:cat) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport( Dispatch( {}, "time", ScaleBox( 2 ),
{
For( i = 1, i <= N row( dates), i++,
f = dates [ i ];
Add Ref Line( f, "Dotted", "Blue", "", 2 )
);
})
);Ma quando eseguo lo script, non viene visualizzata alcuna riga di riferimento.
Come posso risolvere questo problema?
Ultima domanda: se non aggiungo "Page(:cat)" nelle variabili del grafico, non appare alcuna linea di riferimento...
Grazie per l'aiuto !!
Benvenuto nella comunità di discussione!
Ecco un modo per aggiungere le linee di riferimento

La documentazione su come utilizzare le strutture di visualizzazione per manipolare l'output di JMP si trova nell'indice degli script.
Names Default To Here( 1 );
dt = Data Table( "data" );
dates = Data Table( "dates" );
ref1 = dates:name( "date" )[1];
gb = Graph Builder(
Variables( X( :time ), Y( :value ), Page( :cat ) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch( {}, "time", ScaleBox( 2 ), {Add Ref Line( ref1, "Dotted", "Red", "", 2 )} )
)
);
// Add reference lines
For( i = 1, i <= N Rows( dates ), i++,
// Add for Cat = B
(Report( gb )[axisbox( 1 )]) << add ref line( dates:date[i], "Dotted", "Blue", "", 2 );
// Add for Cat = C
(Report( gb )[axisbox( 3 )]) << add ref line( dates:date[i], "Dotted", "Blue", "", 2 );
);
Grazie Jim per la tua rapida risposta, davvero utile!