[R] help on plotting series with different x-axis values on a graph with one x-axis

Jim Lemon jim at bitwrit.com.au
Mon Feb 11 11:57:51 CET 2013


On 02/09/2013 11:52 PM, Eike Marie Thaysen wrote:
>
> Hi,
> I have run into this problem a couple of times now and hope you can help!
>
> If I want to plot  mulitiple series with differing x-axis values (however, all in the same range) in 1 plot with one common axis R obstruses the plots.
>
> E.g. if I plot water content against time and I start with the sampler at 5 cm depth, it plots that one right.
> But the next depth, 15 cm, is measured at slightly different time intervals  and so R will not plot the series correctly.
> Reading in the data using  “ stringsAsFactors=FALSE” helps, but the lines are still plottet in an akward fashion (edgy) , see attached image.
> Hope you can help!

Hi eike,
I'll do a bit of guessing to see if it helps. First, I think that your 
times are being read in as factors (they are probably formatted like "11 
Feb 2013 13:23:37" or similar and read as character strings). As you are 
probably sampling at fairly equal intervals, the fact that the factors 
are represented by integers starting with 1 may look okay. What you may 
want is to convert these to date/time objects (say the data frame is 
"mydata" and the times are "sample_time"):

mydata$sample_time<-strptime(mydata$sample_time,
  format="%d %b %Y %H:%M:%S")

or something like that. Then the x axis will be in units of date/time 
and your second series will be plotted correctly. By calling the lines 
"edgy" perhaps you mean that they are not smooth curves. You may want to 
use the "approx" function or a smoothing function to smooth out the 
lines and plot those curves instead.

Having the data would help, so if you could "dput" your data or a small 
subset of it, we could give better suggestions.

Jim



More information about the R-help mailing list