I am trying to use ListLinePlot to plot three "Components" of my TemporalData in Mathematica. The three components differ widely in the range of the data. So, I want to Rescale each component and plot.
I used the Rescale function on each "Components". This works well if there is no missing data in the Component. However, it does not plot if there is missing data. I know there is a RescaleTimeSeries function to scale the time axis. Is there a corresponding function for the y-axis.
@Gladaed, Here is an example with two components:
r = {11, 13, 2, 7, 17, 8};
s = {2, 1, 6, 5, 7, 4};
t = {1, 2, 5, 10, 12, 15};
td = TemporalData[{r, s}, {t}]
rmissing = {11, 13, Missing["No Data"], 7, 17, 8};
tdmissing = TemporalData[{rmissing, s}, {t}]
grp0 = ListLinePlot[td]
grpmissing = ListLinePlot[tdmissing]
grp1 = ListLinePlot[{Rescale[td["Components"][[1]]], Rescale[td["Components"][[2]]]}]
grprescaledandmissing = ListLinePlot[{Rescale[tdmissing["Components"][[1]]], Rescale[tdmissing["Components"][[2]]]}]
You will see that the Rescaled Plot "grprescaledandmissing" does not plot the Component with missing data. The regular ListLinePlot "grpmissing" that is not Rescaled is fine.
Rescale
does not know how you'd preferMissing
to be handled so it returns a symbolic output which in turn doesn't plot. Perhaps you should consider using theResamplingMethod
option or handle the missing data manually (hand code it to a numeric value eg0
if applicable for the use case at hand) $\endgroup$