Ciao a tutti:
Questo è il mio primo intervento. Sono ancora un neofita con JSL e sto cercando di risolvere il mio problema da un paio di giorni. Ecco la configurazione del problema...
Ho un file di dati che devo analizzare ogni venerdì. Questo file di dati è costituito da un registro data/ora di alcuni valori acquisiti in tempo reale. Quindi ogni venerdì, questo file di dati ha un nuovo intervallo di date. Ho scritto uno script per tracciare questi dati in un grafico bivariato in cui l'asse x è data/ora e l'asse y è un parametro di interesse:
trendChart = Bivariate(
Y( :PARAMETER ),
X( :DATE ),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Format( "m/d/y", 10 ), Min( minDate ), Max( maxDate ),
Interval( "Day" ), Inc( 7 ), Minor Ticks( 6 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"2",
ScaleBox,
{Max( myMaxValue ), Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 720, 360 ), Row Legend(
PROGRAM_NAME,
Color( 1 ),
Color Theme( "JMP Vibrant" ),
Marker( 1 ),
Marker Theme( "Hollow" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);Voglio che questo grafico venga ridimensionato automaticamente sull'asse x in modo che il punto minimo sia la data più vecchia nel file di dati e il punto massimo sia la data più giovane nel file di dati. Penso che il modo migliore per farlo sia avere 2 variabili che dipendono dal contenuto effettivo del file di dati, minDate E maxDate e li ho definiti come:
<FONT color="#FF0000">minDate</FONT> = col min(dt1, :DATE);
<FONT color="#FF0000">maxDate</FONT> = col max(dt1, :DATE);
L'esecuzione di questi frammenti di codice nel mio script più grande genera un grafico vuoto (nessun dato mostrato). Il debug mostra che entrambi minDate E maxDate sono vuoti, quindi non devo definire correttamente queste variabili.
Gradirei qualche intuizione.
Grazie per l'aiuto.
La struttura della funzione Col Min() è
x = Col Min( Column, By Column );
La colonna che stai specificando nel tuo codice
minDate = col min(dt1, :DATE);
maxDate = col max(dt1, :DATE);
sembra non chiedere la colonna :Date per trovare i valori minimo e massimo, ma per una colonna chiamata "dt1".Presumo che "dt1" sia in realtà un puntatore alla tua tabella di dati.Credo che il tuo codice dovrebbe essere:
minDate = col min( :DATE);
maxDate = col max( :DATE);