Hallo,
Ich habe eine Datentabelle, die besteht aus:
- absolute Datum-Uhrzeit
- Dauer in Sekunden ab dem ersten Zeitstempel
- Datenpunkte, die jedem Datum/Uhrzeit zugeordnet sind
Wenn ich die Datenpunkte zeichne, platziere ich oft die Dauer auf der X-Achse und schneide / filtere dann die X-Achse auf einen Zeitraum von Interesse.
Beim Beschneiden der X-Achse im Graph Builder beginnt die Dauer jedoch nicht mehr bei "Null". Was ist der einfachste Weg, um die Dauer immer zum Zeitpunkt "Null" im Diagramm zu beginnen? Ich möchte dies tun, damit die Grafik sauberer und einfacher zu lesen ist.
Wenn es möglich ist, dies zu tun, ohne die zugrunde liegende Datentabelle zu ändern und einfach das Anzeigeverhalten der Achse zu ändern, wäre das großartig. Andernfalls gehe ich davon aus, dass ich möglicherweise auf die Achsengrenzen des Diagrammfensters in der Dauerspaltenformel verweisen muss - aber nach einigem Suchen sehe ich nicht, wie das geht.
Vielen Dank im Voraus für jede Hilfe oder Anregungen!
Die Lösung, die ich vorschlagen werde, erfordert eine Formel, einen globalen Datenfilter (dies wirkt sich auf die Datentabelle aus) und einige Skripte. Die Idee ist, die Formelspalte als X-Achse zu verwenden, die die Dauer immer basierend auf der ersten NICHT ausgeschlossenen Zeile neu berechnet:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Date", Numeric, Continuous, Set Each Value(Today() + Row()));
dt << New Column("TimeSinceStart", Numeric, Continuous, Set Each Value(:Date - :Date[1]));
dt << New Column("TimeWithFormula",
Numeric,
"Continuous",
Format("Best", 12),
Formula(If(!Excluded(), :Date - Col Min(:Date, !Excluded()), .))
);
nw = New Window("",
H List Box(
dt << Data Filter(
Mode(Include(1)),
Add Filter(columns(:Date))
),
gb = dt << Graph Builder(
Size(535, 457),
Show Control Panel(0),
Variables(X(:TimeWithFormula), Y(:weight)),
Elements(Points(X, Y, Legend(3)), Smoother(X, Y, Legend(4)))
)
)
);
Es gibt andere Möglichkeiten, dies zu tun, aber dies sollte eine ziemlich einfache Option sein