Come avere un grafico preimpostato per l'asse di aggiornamento del generatore di grafici dopo la riesecuzione?Ciao a tutti,
Esecuzione di JMP/JMP Pro su macchine Windows 11.
Sono curioso di sapere come aggirare un tipo di problema molto specifico e farlo automaticamente (non manualmente). Ad esempio, sto utilizzando la tabella dei dati di esempio Air.jmp per mostrare il problema in questione. Ho allegato una copia dei file con lo script per mostrare il problema.
Ho una tabella dati in cui aggiungo dati quotidianamente (a volte settimanalmente) e ho uno script integrato nella tabella dati per tracciare i dati rispetto alla data. Per imitare ciò, ho diviso la tabella dei dati Air.jmp in due metà e ho creato il grafico del generatore di grafici, quindi ho concatenato il "nuovo" (seconda metà dei dati) con la prima metà dell'altra tabella e ho eseguito nuovamente lo script.
Idealmente mi piacerebbe ottenere un output in cui l'asse x della data del generatore di grafici viene automaticamente ridimensionato alla data più recente, in questo modo:

Invece, ottengo un grafico in cui si aggiorna solo al valore di quando ho salvato l'ultima versione dello script del generatore di grafici nella tabella dati. Quindi, l'output è simile al seguente:

Ciò non accade quando si rappresentano semplicemente i punti dati e non si modifica l'incremento dell'asse. L'incremento predefinito sull'asse per questo set di dati (la prima metà) è di 2 anni. Dopo aver aggiunto la seconda metà dei dati ed eseguito nuovamente lo script nella tabella dei dati, viene ripristinato il valore predefinito su 5 anni e vengono rappresentati graficamente tutti i dati.
Tuttavia, se si modifica l'incremento predefinito su 1 mese, ad esempio, e si salva lo script nella tabella dati (prima metà), quindi si aggiungono i nuovi dati e si esegue nuovamente lo script, le impostazioni dell'asse rimangono le stesse dell'originale script: non si aggiorna per includere i nuovi dati. La grande differenza nello script è il comando SendToReport:
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min( 1597574016 ), Max( 1925078400 ), Interval( "Month" ), Inc( 1 ),
Minor Ticks( 1 )}
)
)In questo comando sono presenti le impostazioni della data Min() e Max() che vengono modificate dall'intervallo di date esistente della tabella dati originale. Non sono sicuro del motivo per cui questa limitazione è presente e non viene aggiornata per riflettere le nuove date aggiunte a una tabella dati e lo script viene eseguito nuovamente.
C'è un modo per aggirare questo problema mantenendo l'intervallo Mese e avendo anche l'asse x annidato in modo che anche i mesi siano raggruppati in anni? Dopo aver aggiunto nuovi dati alla tabella e aver eseguito nuovamente lo script, vorrei che il nuovo grafico utilizzasse le impostazioni Min() e Max() dell'ultima tabella dati, non dell'originale.
Speriamo che ci sia una soluzione semplice per questo. Altrimenti, penso che inserirò una richiesta nella lista dei desideri per modificare questa impostazione per consentire l'aggiornamento automatico degli input Min() e Max() per l'asse in base ai valori correnti all'interno della colonna pertinente della tabella dati.
Grazie in anticipo per qualsiasi pensiero/feedback!,
DS
Combinazione e pulizia dei datiEsplorazione e visualizzazione dei datiPersonalizzazione di massaRi: Come avere un grafico preimpostato per l'asse di aggiornamento del generatore di grafici dopo la riesecuzione?Ciao @jthi ,
Grazie, è stato così! Preferisco utilizzare Expr(Col Min()) e Expr(Col Max()) negli argomenti Min() e Max() per il generatore di grafici. E, abbastanza bene, JMP eseguirà il riempimento per te su entrambe le estremità del grafico, che deve essere in qualche modo ridimensionato in base alla dimensione della scala temporale del tuo grafico, poiché sembra che con questo set di dati riempia 366 giorni.
Grazie per la risposta rapida!,
DS
Ri: Come avere un grafico preimpostato per l'asse di aggiornamento del generatore di grafici dopo la riesecuzione?Penso che se ti va bene avere posti vuoti nella trama potresti semplicemente rimuovere min e max dal sendtoreport.
Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)

Oppure un'altra opzione è calcolarli con uno script e quindi aggiungerli con quello (e potresti comunque dover eseguire qualche ridimensionamento se JMP decide di aggiungere valori vuoti).
Eval(EvalExpr(
Current Data Table() << Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min(Expr(Col Min(:date))), Max(Col Max(col max(:date))), Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)
));
