Ho un set di dati con una colonna temporale che copre 10 anni di dati. Come posso calcolare mese/giorno (senza anno) da questa colonna? Voglio posizionare questa nuova variabile sull'asse x e sovrapporre il mio grafico per anno per osservare l'andamento della mia variabile (concentrazione di ozono) anno su anno. Un'idea è usare Day of Year, ma voglio mostrare anche i mesi sull'asse x che non è possibile con Day of Year. Eventuali suggerimenti?
La colonna "Mese_giorno rettificato" è una colonna Data JMP.Viene visualizzato solo utilizzando un formato personalizzato.Sì, se vuoi andare all'impostazione dell'asse per l'asse X, dovresti inserire i valori nel valore della data grezza (il numero di secondi dal 1 gennaio 1904), ma in modo interattivo, puoi spostare, comprimere, espandi l'asse normalmente e, se stai impostando i valori in JSL, puoi sempre usare la funzione Informat() per impostare i valori minimo e massimo in una struttura facile da usare
gb = Graph Builder(
Variables( X( :Adjusted month_day ), Y( :Y ), Overlay( :Year ) ),
Elements( Points( X, Y, Legend( 15 ) ), Smoother( X, Y, Legend( 16 ) ) )
);
report(gb)[AxisBox(1)] << min( informat("05/01/2020","m/d/y")) << inc( in weeks(1));

Grazie @txnelson per il consiglio. L'unico problema con questo metodo è che non riesco a controllare facilmente il minimo, il massimo e l'intervallo dell'asse x poiché non è proprio un formato di data.
Lo farei creando 2 nuove colonne; Supponendo che la colonna della data corrente si chiami :Date, ho fatto quanto segue
- Crea una nuova colonna denominata Anno, con la seguente formula
Year(:Date);
- Crea una nuova colonna chiamata Month_Day.Tutti i valori avranno lo stesso anno, per standardizzare Month_Day.
DateMDY(month(:Date), Day(:Date), 2020);
e applica questo formato personalizzato alla nuova colonnamonthList = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
monthList[Month( :value )] || "/" || Char( Day( :value ) );
- In allegato è la tabella di dati che ha creato questo grafico, insieme allo script