Re: [R] plot

From: Barry Rowlingson <B.Rowlingson_at_lancaster.ac.uk>
Date: Fri 09 Dec 2005 - 23:05:51 EST

Rhett Eckstein wrote:
> Dear R users:
>
>

>>C1

>
> time X1
> 1 0.5 6.296625
> 2 1.0 10.283977
> 3 1.5 12.718610
> 4 2.0 14.112740
> 5 3.0 15.053917
> 6 4.0 14.739725
> 7 6.0 12.912230
> 8 8.0 10.893264
> 9 0.5 6.289166
> 10 1.0 10.251247
> 11 1.5 12.651346
> 12 2.0 14.006958
> 13 3.0 14.870618
> 14 4.0 14.487026
> 15 6.0 12.555566
> 16 8.0 10.474695
>
>>plot(C1,type="l")

>
> In the plot, there is a straight line between time=0.5 and time=8,
> If I do not want the straight line, what should I do?

  What do you want? Looking at your data makes me think you want two separate lines, in which case you probably want to do a plot() followed by a lines(), or better still with a slight rearrangement of your data you can use matplot() which is designed for doing several lines (or sets of points) in one plot.

Something like:

  matplot(C1$time[1:8], cbind(C1$X1[1:8], C1$X1[9:16]), type='l')

  but you may also want to rearrange your dataframe. Try:

  C2 = data.frame(time=C1$time[1:8], X1=C1$X1[1:8], X2=C1$X1[9:16])

  so it looks something like this (with random numbers):

  C2
   time X1 X2

1  0.5 0.754514622 0.2571699
2  1.0 0.006056693 0.7252758
3  1.5 0.694433716 0.5532185
4  2.0 0.201020796 0.4590972
5  3.0 0.114225055 0.8226671
6  4.0 0.569609820 0.9712040
7  6.0 0.306018526 0.6795705
8  8.0 0.142492724 0.3452476

  then matplot becomes:

  matplot(C2$time, cbind(C2$X1,C2$X2),type='l')

Baz



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Dec 09 23:57:29 2005

This archive was generated by hypermail 2.1.8 : Sat 10 Dec 2005 - 02:26:06 EST