Bonjour,
J'ai un datatable qui se compose de:
- date-heure absolue
- durée en secondes à partir du premier horodatage
- points de données associés à chaque date-heure
Lorsque je trace les points de données, je place souvent la durée sur l'axe X, puis recadre/filtre l'axe X sur une période d'intérêt.
Cependant, lors du recadrage de l'axe X dans le générateur de graphiques, la durée ne commence plus à "zéro". Quel est le moyen le plus simple de toujours démarrer la durée au temps "zéro" dans le graphique ? Je voudrais faire cela pour que le graphique soit plus propre et plus facile à lire.
S'il est possible de le faire sans modifier la table de données sous-jacente et simplement changer le comportement d'affichage de l'axe, ce serait formidable. Sinon, je suppose que je devrai peut-être faire référence aux limites de l'axe de la fenêtre graphique dans la formule de la colonne de durée - mais après quelques recherches, je ne vois pas comment procéder.
Merci d'avance pour toute aide ou suggestions!
La solution que je vais proposer nécessitera une formule, un filtre de données global (cela affectera la table de données) et des scripts. L'idée est d'utiliser la colonne de formule comme axe X qui recalculera toujours la durée en fonction de la première ligne NON exclue :
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)))
)
)
);
Il existe d'autres façons de le faire, mais cela devrait être une option assez simple