Use the millisecond timer, and an X/Y graph.
I assume you're in a WHILE loop.
Add a shift register (SR). Initialize it with a (U32) zero value (from outside the loop).
Initialize another shift reg with an empty array of {X|Y} clusters.
Repeat
Y = Receive a value.
Tnow = MilliSecond timer.
if SR = 0
SR = Tnow (Initialize the start time)
else
SR = SR (leave it alone)
X = Tnow - SR
Append {X,Y} to your plot array.
Limit the array to the latest N points (or it will grow indefinitely).
Replot the array on the graph.
until Stopped.
The idea is that you initialize the SR with the current time WHEN YOU RECEIVE YOUR FIRST READING.
After that, you take the time difference between now and the start time, and p
lot that as the X (time) value.
The 0th point plotted will always be at time zero, every point after that will be some number of mSec later. Every time you restart the program, you start at zero again.
Note that this doesn't account for serial transmission time, nor the fact that the instrument may have stored the value for some time before transmitting it.
If you're using real slow update rates, you may want to use DATE/TIME in SECONDS instead of the mSec timer, but the principle is the same.