Hallo an alle:
Dies ist mein erster Beitrag. Ich bin immer noch ein Neuling bei JSL und versuche seit einigen Tagen, mein Problem zu lösen. Hier ist die Problemeinstellung ...
Ich habe eine Datendatei, die ich jeden Freitag analysieren muss. Diese Datendatei besteht aus einem Datums-/Zeitprotokoll einiger in Echtzeit erfasster Werte. Diese Datendatei hat also jeden Freitag einen neuen Datumsbereich. Ich habe ein Skript geschrieben, um diese Daten in einem bivariaten Diagramm darzustellen, in dem die x-Achse Datum / Uhrzeit und die y-Achse ein Parameter von Interesse ist:
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 )
)}
)
)
);Ich möchte, dass dieses Diagramm automatisch auf der x-Achse skaliert wird, sodass der Mindestpunkt das älteste Datum in der Datendatei und der Höchstpunkt das jüngste Datum in der Datendatei ist. Ich denke, der beste Weg, dies zu tun, besteht darin, zwei Variablen zu haben, die vom tatsächlichen Inhalt der Datendatei abhängen. Mindestdatum Und maxDatum und ich habe diese definiert als:
<FONT color="#FF0000">minDate</FONT> = col min(dt1, :DATE);
<FONT color="#FF0000">maxDate</FONT> = col max(dt1, :DATE);
Das Ausführen dieser Codeschnipsel in meinem größeren Skript erzeugt ein leeres Diagramm (keine Daten angezeigt). Das Debuggen zeigt beides Mindestdatum Und maxDatum sind leer, also darf ich diese Variablen nicht richtig definieren.
Ich würde mich über einen Einblick freuen.
Ich danke Ihnen für Ihre Hilfe.
Die Struktur der Funktion Col Min() ist
x = Col Min( Column, By Column );
Die Spalte, die Sie in Ihrem Code angeben
minDate = col min(dt1, :DATE);
maxDate = col max(dt1, :DATE);
scheint nicht nach der :Date-Spalte zu fragen, um die Mindest- und Höchstwerte zu finden, sondern nach einer Spalte namens "dt1".Ich gehe davon aus, dass "dt1" tatsächlich ein Zeiger auf Ihre Datentabelle ist.Ich glaube, Ihr Code sollte sein:
minDate = col min( :DATE);
maxDate = col max( :DATE);